#include “mycopy.h”
#define BUF_SIZE 1024
int main(int argc, char *argv[])
{
int fd_src = 0;
int fd_dst = 0;
int read_size = 0;
int write_size = 0;
char buf[BUF_SIZE] = {0};
if(argc != 3) {
LOG_ERR("argc num err");
goto exit;
}
fd_src = open(argv[1], O_RDONLY);
if(fd_src < 0) {
perror("open src file fail");
goto exit;
}
fd_dst = open(argv[2], O_WRONLY | O_CREAT | O_EXCL);
if(fd_dst < 0) {
perror("open dst file fail");
goto exit;
}
while(1) {
memset(buf, 0, BUF_SIZE);
read_size = read(fd_src, buf, BUF_SIZE);
if(read_size < 0) {
perror("read src file fail");
goto exit;
}
if(read_size == 0)
break;
write_size = write(fd_dst, buf, read_size);
if(write_size != read_size) {
perror("write dst file fail");
goto exit;
}
if(read_size < BUF_SIZE)
break;
}
return RET_OK;
exit:
if(fd_src > 0)
close(fd_src);
if(fd_dst > 0)
close(fd_dst);
return RET_FAIL;
}