|
|
1
77
差异
|
|
|
2
23
|
|
3
15
许多文件系统都是基于记录的,因此,为了高效地满足这些文件系统的要求,您必须指定项的数量(“记录”),从而允许fwrite/fread在存储上作为记录而不仅仅是字节流进行操作。 |
|
|
4
9
至于参数的基本原理
尽管C标准规定
基本上,他是这么说的
|
|
|
5
3
|
|
|
6
1
对于可以避免读取任何部分记录的实现来说,使用单独的大小和计数参数可能是有利的。如果要从管道之类的对象中使用单字节读取,即使使用的是固定格式的数据,也必须考虑记录在两次读取中被分割的可能性。如果可以改为请求(例如,当有293个字节可用时,非阻塞读取最多40个记录,每个记录10个字节),并让系统返回290个字节(29个完整记录),同时保留3个字节以备下次读取,则会方便得多。 我不知道fread的实现能在多大程度上处理这样的语义,但它们在承诺支持它们的实现上肯定很方便。 |
|
|
7
-2
我认为这是因为C缺少函数重载。如果有的话,那么尺寸将是多余的。但在C语言中,不能确定数组元素的大小,必须指定一个。 考虑一下:
如果fwrite接受字节数,则可以写入以下内容:
但它只是效率低下。您将有sizeof(int)乘以更多的系统调用。
在某些系统上(由于对齐),如果不创建副本并进行移位,则无法访问整数的一个字节。 |
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |