文件的结束标志:EOF(End Of File)

风行水上 @ 2013-10-16 14:25:56
标签:

    C语言和Linux系统中相当常见的一个概念是EOF = End of File,指的是文件的结束标志。

    一段典型的C代码如下:

    FILE *fp = fopen("file.txt", "r");
    while( EOF != getc(fp) ){
      // process the data
    }
    fclose(fp);
    

    一个可能会的问题是“如果文件中包含有一个EOF字符的话怎么办?”这个问题也经苦恼过自己。

    实际上很简单——一个字符是永远不会等于EOF的:

    int EOF = -1;
    int getc(FILE *fp);
    
    (char) 0xff = (int) 0x000000ff
    

    一个字符虽然是8bit长度,但在处理过程中却是当作32bit的整数来处理的,因此允许不冲突。

    Ctrl+D 和 EOF

    在Linux中,通过标准输入(stdin)输入数据时,可以通过Ctrl+D输入EOF字符。

    在Windows系统中,则可以通过Ctrl+Z来表示文件结束。

    标签:

      分享到:
      comments powered by Disqus

      27/29ms