fwrte是C标准库中提供的函数,是对write函数的扩展与封装,write则是Unix系统提供的函数。按照常理来讲,系统调用肯定比使用库快的多,但是事实正好相反 Why?原因就在于缓冲的问题,fwite会在内存中开辟缓冲区,来避免频繁的I/O,所以速度比系统调用要快(更多比较“open/read/write和fopen/fread/fwrite的区别”)

为了直观的比较一下fwrite和write的速度。我们来做一个简单的测试:

fwrite.c

[c]
#include <stdio.h>

int main(void)
{
FILE *stream;
int i;
char str[] = "qwertyuiop\n";
if ((stream = fopen("fwrite.txt", "w")) == NULL)
{
fprintf(stderr, "Cannot open output file.\n");
return 1;
}
for(i=0; i<100000; i++)
{
fwrite(str, sizeof(str), 1, stream);
}
fclose(stream); /*关闭文件*/
return 0;
}
[/c]

运行时间:

[code]
real 0m0.009s
user 0m0.003s
sys 0m0.005s
[/code]

write.c

[c]
#include <stdio.h>
#include <fcntl.h>

int main(void)
{
int fd;
int i;
char str[] = "qwertyuiop\n";
if ((fd = open("write.txt", O_RDWR|O_CREAT|O_TRUNC, 00664)) < 0)
{
fprintf(stderr, "Cannot open output file.\n");
return 1;
}
for(i=0; i<100000; i++)
{
write(fd, str, sizeof(str));
}
close(fd); /*关闭文件*/
return 0;
}
[/c]

运行时间:

[code]
real 0m0.189s
user 0m0.008s
sys 0m0.181s
[/code]

果然,从程序运行时间上看,使用标准库函数速度比直接系统调用快了很多 从程序的可移植性角度来讲,使用标准库函数也是一个好的习惯 而系统调用则是用在和系统关联度很高的地方

最新文章

  1. oracle 函数大全及运算符
  2. [原创]java WEB学习笔记84:Hibernate学习之路-- -映射 一对一关系 ,基外键的方式实现
  3. 黄聪:HtmlAgilityPack教程案例
  4. java:jdk环境变量配置+tomcat环境变量配置
  5. 《Java编程那点事儿》读书笔记(六)——异常处理
  6. [转载]App.Config详解及读写操作
  7. network: Android 网络判断(wifi、3G与其他)
  8. Hadoop基准测试(转载)
  9. Linux目录文件详解FHS标准(2013.09.05)
  10. 人工智能(AI)库TensorFlow 踩坑日记之二
  11. 【原创】Arduino、arm、树莓派与单片机
  12. springboot的注解详解
  13. jQuery中对未来的元素绑定事件用bind、live or on
  14. KMP字符串匹配(模板)
  15. PHP系统编程--PHP进程信号处理(转)
  16. Olivia Palermo &amp; Johannes Huebl 模范情侣
  17. LeetCode Majority Element Python
  18. sql 存储时空格转成问号问题
  19. 【总结整理】关于挪车和虚拟号的思考-转载v2ex
  20. 20155226 2016-2017-2 《Java程序设计》第4周学习总结

热门文章

  1. Codeforces Round #267 (Div. 2) A
  2. JS列
  3. Qt5该插件机制(4)--QtMeta信息窗口小部件metaData
  4. WebService之CXF注解报错(一)
  5. 【MongoDB】在windows平台mongodb切片集群(三)
  6. B/S 类项目改善
  7. 设计模式 - 观察者模式(Observer Pattern) 详细解释
  8. ubuntu14.04通过将语音,耳机没有声音
  9. 记得12306货运系统“抢购空”编写插件--chrome交互式插件的各个部分
  10. js 正则学习小记之匹配字符串优化篇