什么是fread()中的"短项目计数"?

zha*_*nxw 8 fread

当我被'人为'时,我得到了这个:

返回值
fread()和fwrite()返回成功读取或写入的项目数(即不是字符数).如果发生错误或达到文件结尾,则返回值为短项目计数(或零).

fread()不区分文件结束和错误,并且调用者必须使用feof(3)和ferror(3)来确定发生了什么.

所以我的问题是如何理解"短项目计数".请忍受我的英语.为什么这里涉及类型"短"?你能否举一个例子说明"短项目计数"是什么样的?谢谢.

jmd*_*jmd 8

fread手册页中"short"的含义不是指数据类型.

在这种情况下,"短"意味着"少于预期".如果fread()期望读取4个对象,但只读取3,则返回值3.

我相信应该重写手册页说:"如果发生错误,或者到达文件结尾,返回值是成功读取或写入的项目数,直到错误或EOF发生.

  • 同意手册页写得很糟糕,需要重写.我知道fread如何运作,我在英语方面很体面,但我不理解它. (2认同)

Ign*_*ams 6

如果你想要 4,而你有 3,那么你就缺 1。

  • 如果你想要 4 而你有 3,fread 将返回 3。“short”从何而来?如果措辞有意义,它将返回 1。但另一方面,这将是一个无意义的 API。 (2认同)
  • 你是1矮,你不是3矮。在这种情况下,英语单词 short 只能指缺失项目的数量。说英语的人会假设“短项目数”计算的是您缺少的项目数量。与“成功读取项目计数器”相反。 (2认同)