网站开发后端做什么,龙岩市城乡建设局网站进不去,好制作网站公司,用wordpress教程视频教程作业 : 使用两个子进程完成两个文件的拷贝#xff0c;子进程1拷贝前一半内容#xff0c;子进程2拷贝后一般内容#xff0c;父进程用于回收两个子进程的资源
#include head.hint main(int argc, const char *argv[])
{int rd -1;if((rdopen(./01_test.c子进程1拷贝前一半内容子进程2拷贝后一般内容父进程用于回收两个子进程的资源
#include head.hint main(int argc, const char *argv[])
{int rd -1;if((rdopen(./01_test.c,O_RDONLY))-1) //打开一个文件以只读的方式{perror(open error\n);return -1;}int wd -1; //以写的方式打开一个文件若文件不存在则创建存在则清空if((wdopen(./text.txt,O_WRONLY|O_CREAT|O_TRUNC, 0664))-1){perror(write error\n);return -1;}char res[128]; //定义一个字符串当中转站int seek lseek(rd,0,SEEK_END); //定义seek获取文件内容的大小lseek函数的返回值是文件的大小int count 0; //定义count来接收read的返回值int pid fork(); //创建子进程if(pid 0) //如果pid大于0则为父进程 {//父进程//回收子进程的资源wait(NULL);wait(NULL);int pid2 fork(); //在父进程中再创建子进程if(pid20) //父进程{ }else if(pid2 0) //再次创建的子进程{//子2进程 lseek(rd,0,SEEK_SET); //将光标偏移到文件开头while(1){if(seek/2 lseek(rd,0,SEEK_CUR)) //如果文件偏移到文件中间则跳出循环{break;}countread(rd,res,sizeof(res)); //读写文件write(wd,res,count);}exit(EXIT_SUCCESS); //退出子进程}else{perror(pids error\n);return -1;}}else if(pid 0) //子2进程{ //休眠1秒等另一个进程拷贝完毕sleep(1);//光标移动到文件中央lseek(rd, 0, SEEK_CUR);while(1){if(count0) //如果read的返回值为0说明文件读取完毕跳出循环{break;}count read(rd,res,sizeof(res)); //读写文件write(wd,res,count);}exit(EXIT_SUCCESS); //退出子进程} else{perror(pidx error\n);return -1;}printf(拷贝完成\n);close(wd);close(rd);return 0;
}
思维导图