In the C programming language, or more correctly, the C Standard Library, file access and other I/O functions may return a value equal to the symbolic value (macro) EOF to indicate that an end-of-file condition has occurred. The actual value of EOF is commonly -1, but is system-dependent. The macro EOF is expanded to the actual value by a preprocessor before compiling the source code.
In UNIX an end-of-file indication can be sent from an interactive shell (console) by typing Ctrl+D (conventional standard). In Microsoft's DOS it is sent by pressing Ctrl+Z. Microsoft historically appended an ASCII Control-Z character to the end of a file, presumably because the original versions of the MSDOS operating system were not capable of detecting an end-of-file condition otherwise.