fgetc、fgets读取同一个文件哪个效率会高点
请问fgetc、fgets读取同一个文件哪个效率会高点?或者直接用系统调用呢。 1)如果文件每一行数据字节数很少,只有几个字节,用fgetc;反之fgets。2)系统调用不一定比标准I/O快,系统调用会导致进程从用户态切换到内核态消耗CPU等资源,现在很多系统在用户态的标准I/O库函数有缓冲区,会预读一些数据放到内存,以尽可能减少调用系统调用的次数。
要看具体文件内容才能确定用哪个快。简单来说,如果你的文件只有4kb,而且需要全部读取出来,直接read 算了。如果你需要一行一行的数据,fgets。如果你需要一个一个字符,fgetc。如果文件很大很大,fread。就这样吧。
页:
[1]