接再励 完成cp
//cp.c
#include
#include
#include
#include
#define BUFFERSIZE 4096
#define COPYMODE 0644
void oops(char *s1,char *s2);
void oops(char *s1,char *s2)
{
fprintf(stderr,"Error:%s",s1);
perror(s2);
exit(1);
}
int main(int argc, char *argv[])
{
printf("Hello, world!\n");
int in_fd,out_fd,n_chars;
char buf[BUFFERSIZE];
if (argc!=3)
{
fprintf(stderr,"usage:%s source destination\n",*argv);
exit(1);
}
if((in_fd=open(argv[1],O_RDONLY))==-1)
oops("Can not open",argv[1]);
if((out_fd=open(argv[2],O_RDWR))==-1)
oops("Cannot creat",argv[2]);
while((n_chars=read(in_fd,buf,BUFFERSIZE))>0)
if(write(out_fd,buf,n_chars)!=n_chars)
oops("Read error to",argv[2]);
if(n_chars==-1)
oops("Read error from",argv[1]);
if(close(in_fd)==-1||close(out_fd)==-1)
oops("Error close files","");
return EXIT_SUCCESS;
}
阅读(621) | 评论(0) | 转发(0) |