进程函数练习
创建子父进程,子进程将1.txt内容拷贝到2.txt中,父进程将3.txt内容拷贝到4.txt中。
#include <myhead.h>int main(int argc, const char *argv[])
{pid_t ID;ID = fork();if(ID>0)//父进程{printf("父进程ID:%d\n",ID);int fd = open("3.txt",O_RDONLY);//只读打开int fd1 = open("4.txt",O_WRONLY|O_CREAT|O_TRUNC,0664);//只写打开if(fd == -1 && fd1 == -1){perror("");return -1;}while(1){char ch[5] = {0};int len = read(fd,ch,sizeof(ch));//读取字符串write(fd1,ch,len);//写入字符串if(len != sizeof(ch)){break;}}close(fd);close(fd1);fd1 = open("4.txt",O_RDONLY);char str[32] = {0};read(fd1,str,sizeof(str));//看写入的内容printf("%s",str);puts("**************");}//子父进程独立进行else if(ID == 0)//子进程{printf("子进程ID:%d\n",ID);int fd = open("1.txt",O_RDONLY);int fd1 = open("2.txt",O_WRONLY|O_CREAT|O_TRUNC,0664);if(fd == -1 && fd1 == -1){perror("");return -1;}while(1){char ch[5] = {0};int len = read(fd,ch,sizeof(ch));write(fd1,ch,len);if(len != sizeof(ch)){break;}}close(fd);close(fd1);fd1 = open("2.txt",O_RDONLY);char str[32] = {0};read(fd1,str,sizeof(str));printf("%s",str);}else{perror("fork");return -1;}return 0;
}
运行结果

整理整理

