Chinaunix
标题:
fgetc、fgets读取同一个文件哪个效率会高点
[打印本页]
作者:
1581526111
时间:
2016-08-02 11:28
标题:
fgetc、fgets读取同一个文件哪个效率会高点
请问fgetc、fgets读取同一个文件哪个效率会高点?或者直接用系统调用呢。
作者:
txchxl
时间:
2016-08-04 17:36
1)如果文件每一行数据字节数很少,只有几个字节,用fgetc;反之fgets。
2)系统调用不一定比标准I/O快,系统调用会导致进程从用户态切换到内核态消耗CPU等资源,现在很多系统在用户态的标准I/O库函数有缓冲区,会预读一些数据放到内存,以尽可能减少调用系统调用的次数。
要看具体文件内容才能确定用哪个快。简单来说,如果你的文件只有4kb,而且需要全部读取出来,直接read 算了。如果你需要一行一行的数据,fgets。如果你需要一个一个字符,fgetc。如果文件很大很大,fread。就这样吧。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2