CTRL+D or CTRL+Z doesn't provoke an EOF. It just terminates your terminal, which in turn the kernel knows no more bytes can be read so no data is available in the standard input file descriptor.