pipe.c

来自「进程间通过管道通信,父进程传消息给子进程」· C语言 代码 · 共 50 行

C
50
字号
//父进程传递消息给子进程//#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 + =
减小字号Ctrl + -
显示快捷键?