Linux 文件操作与 /proc 文件系统详解
1. 文件复制与性能
在文件复制操作中,有这样一段代码:
while((c = fgetc(in)) != EOF)
fputc(c,out);
exit(0);
}
运行这个程序,得到如下时间统计:
$ TIMEFORMAT=”” time copy_stdio
0.29user 0.02system 0:00.35elapsed 87%CPU
此程序运行耗时 0.35 秒,虽不如底层块版本快,但比逐字符复制版本要好很多。这是因为标准输入输出库(stdio)在 FILE 结构中维护了一个内部缓冲区,只有当缓冲区满时才会进行底层系统调用。你可以尝试测试逐行和块方式的标准输入输出复制代码,对比它们与这里测试的三个示例的性能。
2. 流错误处理
许多标准输入输出库函数通过返回超出范围的值(如空指针或常量 EOF )来指示错误。在这些情况下,错误信息会记录在外部变量 errno 中:
#include <errno.h>
extern int errno;
你还可以检查文件流的状态,以确定是否发生错误或是否到达文件末尾:
#include <stdio.h&g
超级会员免费看
订阅专栏 解锁全文
443

被折叠的 条评论
为什么被折叠?



