本文共 1060 字,大约阅读时间需要 3 分钟。
/** * Rewrite the program cat from Chapter 7 using read, * write, open and close instead of their standard library * equivalents. Perform experiments to determine the * relative speed of the two versions. **/#include#include #include #include void filecopy(int form,int to){ int n; char buf[BUFSIZ]; while((n=read(from,buf,BUFSIZ))>0) write(to,buf,n);}void error(char* fmt,...){ va_list args; va_start(args,fmt); fprintf(stderr,"error: "); vfprintf(stderr,fmt,args); fprintf(stderr,"\n"); va_end(args); exit(1);}int main(int argc,char* argv[]){ int f; void filecopy(int f1,int f2); if(argc==1) filecopy(0,1); else while(--argc>0) if((f=open(*++argv,O_RDONLY))==-1){ error("cannot open file %s",*argv); return 1; } else{ filecopy(f,1); close(f); } return 0;}
🐴
转载地址:http://nbwai.baihongyu.com/