您的位置:首页 > 运维架构

简单的copy程序

2011-08-14 19:44 537 查看
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>

#define BUFFSIZE 1024

int main(int argc,char *argv[])
{
int source_fd,target_fd,num;
char buf[BUFFSIZE];

if(argc != 3)
{
fprintf(stderr,"Usage:copy sourcefile targetfile\n");
exit(1);
}

if((source_fd = open(argv[1],O_RDONLY,S_IRWXU)) == -1)
{
fprintf(stderr,"sourcefile open failed!\n");
exit(2);
}
printf("%s\n",argv[1]);

if((target_fd = open(argv[2],O_WRONLY | O_CREAT | O_EXCL,S_IRWXU)) == -1)
{
if(errno = EEXIST)
{
fprintf(stderr,"the targetfile is exist!\n");
exit(3);
}
else
{
fprintf(stderr,"targetfile open failed!\n");
exit(3);
}
}

while((num = read(source_fd,buf,BUFFSIZE)) > 0)
{
if(write(target_fd,buf,num) != num)
{
fprintf(stderr,"targetfile write error!\n");
exit(4);
}
}

close(source_fd);
close(target_fd);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  copy copy.c