【问题标题】:What is "short item count" in fread()?fread() 中的“短项计数”是什么?
【发布时间】:2011-09-14 09:33:08
【问题描述】:

当我是“男人恐惧”时,我得到了这个:

返回值
fread() 和 fwrite() 返回成功读取或写入的项目数(即,不是字符数)。如果出现错误 发生,或结束- 到达文件,返回值是一个短项目计数(或零)。

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

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

【问题讨论】:

    标签: fread


    【解决方案1】:

    如果你想要 4,而你有 3,那么你就做空了 1。

    【讨论】:

    • 如果你想要 4 而你有 3,fread 将返回 3。“short”从哪里来?如果措辞有意义,它将返回 1。但另一方面,这将是一个无意义的 API。
    • @Lundin:3 比 4 短。措辞很好。
    • 你矮1,你不是矮3。英文单词short,在这种情况下,只能指缺失项目的数量。一个说英语的人会假设“短项计数”会计算您短项的数量。与“成功读取项目计数器”相反。
    • 你不是矮3,而是3矮。
    【解决方案2】:

    fread 手册页中“short”的意思不是指数据类型。

    在这种情况下,“短”表示“低于预期”。如果 fread() 期望读取 4 个对象,但只读取 3 个,它将返回值 3。

    我认为应该重写手册页说: "如果发生错误,或到达文件结尾,则返回值是在发生错误或 EOF 之前成功读取或写入的项目数。

    【讨论】:

    • 同意手册页写得不好,需要重写。我知道 fread 是如何工作的,而且我的英语还不错,但我听不懂。
    • 那么,我在哪里提交拉取请求来更改它?
    猜你喜欢
    • 2018-02-27
    • 2011-03-20
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    • 2020-04-11
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多