8.4IO进程线程——进程
文章目录
- 一、思维导图
- 二、创建一个父子进程,父拷贝文件前半部分,子拷贝文件后半部分
- myhead.h
- 代码
- 现象
- 三、牛客网刷题
一、思维导图
二、创建一个父子进程,父拷贝文件前半部分,子拷贝文件后半部分
myhead.h
#ifndef __MYHEAD_H__
#define __MYHEAD_H__#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>#define ERR_MSG(msg) do{perror(msg);printf("%d\n",__LINE__);return -1;}while(0)
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <time.h>
#include <pwd.h>
#include <grp.h>
#endif
代码
#include <myhead.h>
int main(int argc, const char *argv[])
{pid_t set=fork();if(set>0){FILE *fp=fopen("./01_txt","r");if(fp==NULL){ERR_MSG("fopen error");}FILE *fp_w=fopen("./02_txt","w+");if(fp_w==NULL){ERR_MSG("fopen error");}fseek(fp,0,SEEK_END);long len=ftell(fp);fseek(fp,0,SEEK_SET);char a;for(int i=0;i<len/2;i++){a=0;fread(&a,1,1,fp);fwrite(&a,1,1,fp_w);}fclose(fp);fclose(fp_w); }else if(set==0){FILE *fp=fopen("./01_txt","r");if(fp==NULL){ERR_MSG("fopen error");}FILE *fp_w=fopen("./03_txt","w+");if(fp_w==NULL){ERR_MSG("fopen error");}fseek(fp,0,SEEK_END);long len=ftell(fp);fseek(fp,len/2,SEEK_SET);char a;for(int i=0;i<len/2;i++){a=0;fread(&a,1,1,fp);fwrite(&a,1,1,fp_w);}fclose(fp);fclose(fp_w); }else if(set==-1){ERR_MSG("fork error");}return 0;
}
现象
三、牛客网刷题