簡體   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