1、使用父子进程完成两个文件的拷贝,父进程拷贝前一半内容,子进程拷贝后一半内容,子进程结束后退出,父进程回收子进程的资源
#include <myhead.h>
int main(int argc, const char *argv[])
{
//判断输入的格式是否符合要求
if(argc != 3)
{
printf("you should input:./a.out file1 file2\n");
return -1;
}
//定义变量存储文件描述符
int srcfd = -1;
int destfd = -1;
//以只读的形式打开源文件
if((srcfd = open(argv[1],O_RDONLY)) == -1)
{
perror("open srcfd error");
return -1;
}
//以读写的形式打开目标文件
if((destfd = open(argv[2],O_RDWR|O_CREAT|O_TRUNC,0664)) == -1)
{
perror("open destfd error");
return -1;
}
//定义一个容器接收数据
char buf;
//记录文件长度
int len = lseek(srcfd,0,SEEK_END);
int sum = 0;
int res = 0;
//创建一个子进程
pid_t pid = fork();
//判断父亲进程和子进程
if(pid > 0)
{
//把光标指向文件开头
lseek(srcfd,0,SEEK_SET);
lseek(destfd,0,SEEK_SET);
while(1)
{
res = read(srcfd,&buf,sizeof(buf));
if(res == 0)
{