/*
- 使用read和write函数,编写一个程序,实现cp函数的基本功能
*/
#include <stdio.h>
#include <fcntl.h>
#include <stdio.h>
#define PERMS 0666
#define DUMMY 0
#define MAXSIZE 1024
int main(int argc, char *argv[])
{
int sourcefileID,targetfileID;
int readNO=0;
char WRBuf[MAXSIZE];
if(argc!=3)
{
printf("run error\n");
return 1;
}
if((sourcefileID=open(*(argv+1),O_RDONLY,DUMMY))==-1)
{
printf("Source file open error!");
return 2;
}
if((targetfileID=open(*(argv+2),O_WRONLY|O_CREAT,PERMS))==1)
{
printf("Target file open error!\n");
return 3;
}
while((readNO=read(sourcefileID,WRBuf,MAXSIZE))>0)//如果读出来的数据大于0
if(write(targetfileID,WRBuf,readNO)!=readNO)//如果写入的数据和读出的数据不同
{
printf("Target file write error!\n");//写数据错误
return 4;
}
close(sourcefileID);
close(targetfileID);
return 0;
}