繁体   English   中英

Read()返回值和EOF

[英]Read() return value and EOF

我读到EOF定义如下:

#define EOF (-1)

那么为什么读取返回值是:

返回值:如果成功,则返回实际读取的字节数。 在读取文件结尾时,返回零。 否则,返回-1并设置全局变量errno以指示错误。

为什么它在读取文件结尾时不返回-1?

EOF由标准C在<stdio.h>定义,并由使用标准I / O流( FILE * )的函数使用。

诸如read()类的函数是POSIX的一部分,并在<unistd.h>头中声明。 它们与标准I / O流无关,根本不使用EOF

EOF宏用于从文件或标准输入读取单个字符的函数,并将其作为返回值返回(例如, getchar()fgetc() )。 如果输入为空,则此类函数返回EOF而不是字符,以告诉您不能读取任何字符。

您提到了read()函数,该函数将一系列字符读入指定为参数的缓冲区。 在这种情况下,不需要EOF值,因为此函数返回读取的字符数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM