📄 pipe.c
字号:
//父进程传递消息给子进程//#include <apue.h>#include <sys/wait.h>#include <sys/types.h>#include <stdio.h>#include <unistd.h> //pipe#define MAXLINE 1024 //??至少4096int main(void){ int n; int fd[2]; pid_t pid; char line[MAXLINE]; char line2[MAXLINE]; int status; if(pipe(fd) < 0) perror("pipe error"); if((pid = fork()) < 0) { perror("fork error"); } else if (pid > 0) { //父进程 //close(fd[0]); //把数据写入管道中 write(fd[1], "I am parent.", 12); //等待子进程结束 if( wait(&status) ) perror("wait error"); //perror(status); //从管道中读数据 read(fd[0], line2, MAXLINE); //阻塞直到有数据写入管道 printf("line2 : %s\n", line2); } else { //子进程 //close(fd[1]); n = read (fd[0], line, MAXLINE); //write(STDOUT_FILENO, line, n); printf("line : %s\n", line); //write(fd[1], "I am child.", 11); } return 1;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -