/******************************************************
Program:
program to copy a file.
History:
2013/05/25 dingdong First release
******************************************************/
#include <stdio.h>
#include <fcntl.h>
#include <stdlib.h>
char buffer[1024];
void copy(int old,int new);
int
main(int argc,char *argv[])
{
int fdold,fdnew;
if(argc!=3)
{
printf("need 2 arguments for copy program\n");
exit(1);
}
/*open source file read only*/
if((fdold=open(argv[1],O_RDONLY))==-1)
{
printf("cannot open file %s\n",argv[1]);
exit(1);
}
if((fdnew=creat(argv[2],0666))==-1)
{
printf("cannot creat file %s\n",argv[2]);
exit(1);
}
copy(fdold,fdnew);
exit(0);
}
void
copy(int old,int new)
{
int count;
while((count=read(old,buffer,sizeof(buffer)))>0)
write(new,buffer,count);
}
这个命令主要是用到read跟write函数即可,思路比较简单,跟大家分享下代码,过几天再实现一个完全复制的参数。