完成图片拷贝
#include <myhead.h>
int main(int argc, const char *argv[])
{
int fd = open("./1.png",O_RDONLY);
if(fd<0)
{
perror("open");
return -1;
}
int fd2 = open("./copy.png",O_RDWR|O_CREAT|O_TRUNC,0664);
if(fd2 < 0)
{
perror("open");
return -1;
}
//父进程
int len = lseek(fd,0,SEEK_END);
printf("%d",len);
char c = 0;
ssize_t res=0;
pid_t pid = fork();
if(pid > 0)
{
wait(NULL);
lseek(fd,0,SEEK_SET);
lseek(fd2,0,SEEK_SET);
for(int i=0;i<len/2;i++)
{
res = read(fd,&c,sizeof(c));
write(fd2,&c,sizeof(c));
}
printf("前半部分拷贝完毕\n");
//子进程
}else if(0 == pid)
{
lseek(fd,len/2,SEEK_SET);
lseek(fd2,len/2,SEEK_SET);
char c =0;
for(int i = len/2;i<len;i++)
{
res = read(fd,&c,sizeof(c));
write(fd2,&c,sizeof(c));
}
printf("后半部分拷贝挖鼻\n");
}else if(pid<0)
{
perror("pid");
return -1;
}
close(fd);
close(fd2);
return 0;
}