【发布时间】:2010-09-22 16:46:17
【问题描述】:
我们在这里讨论了为什么 fread() 和 fwrite() 为每个成员取一个大小,然后计算并返回读/写的成员数量,而不是而不仅仅是获取缓冲区和大小。我们能想到的唯一用途是,如果你想读/写一个结构数组,这些结构不能被平台对齐整除,因此已经被填充,但不能那么普遍,以至于不能保证这个选择在设计中。
来自fread(3):
函数 fread() 读取数据的 nmemb 元素,每个 size 字节长, 从流指向的流中,将它们存储在给定的位置 通过ptr。
函数 fwrite() 写入数据的 nmemb 元素,每个 size 字节 long,指向stream指向的流,从位置获取 由ptr给出。
fread() 和 fwrite() 返回成功读取或写入的项目数 (即,不是字符数)。如果发生错误,或 到达文件末尾,返回值是一个短的项目计数(或零)。
【问题讨论】:
-
嘿,这是个好问题。我一直想知道