Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Does EOF actually exist?

Tags:

php

eof

When I use file functions in PHP, I check for EOF. I wonder if EOF actually exist in a file. When I create an empty text file, it displays 0KB. How does EOF exist in a file with 0KB?

like image 465
Moon Avatar asked Mar 09 '10 00:03

Moon


People also ask

Does EOF exist in Python?

EOF stands for End of File. This represents the last character in a Python program. Python reaches the end of a file before running every block of code if: You forget to enclose code inside a special statement like a for loop, a while loop, or a function.

Do files end with EOF?

EOF A common misconception of students is that files have a special EOF character at the end. There is no special character stored at the end of a file. EOF is an integer error code returned by a function.

Is EOF and \n same?

A return value of EOF from fgetc() and friends can occur at any time - even in the middle of a line due to an error. Otherwise, no: A end-of-file does not occur at the end of a line with a '\n' . Typically the last line in a file that contains at least 1 character (and no `'\n') will also be a line.

Is there an end of file character?

EOF characterBy default, the driver converts a Control-D character at the start of a line into an end-of-file indicator. To insert an actual Control-D (ASCII 04) character into the input stream, the user precedes it with a "quote" command character (usually Control-V).


1 Answers

There is an end-of-file control character (in the ASCII character set it's CTRL+Z or 26 or 0x1A), but it hasn't actually been needed to mark the end of a file since OSes released in the 80's. All modern OSes store the file size as metadata in the directory structure (exact format depends on filesystem) and high level file access functions will check the file size to decide when to indicate EOF to you, the programmer.

If there is an end-of-file in the data AND you have text-mode translations turned on (in most languages this is the same setting that controls NL <-> CRLF conversions), then the file access may stop when it hits that EOF character. In binary mode, reads will keep going until the file size is hit.

like image 96
Ben Voigt Avatar answered Sep 19 '22 12:09

Ben Voigt