3.c

来自「简单的进程间通信」· C语言 代码 · 共 51 行

C
51
字号
#include <unistd.h>#include <sys/types.h>#include <errno.h>#include <stdio.h>#include <stdlib.h>int main(){	int pipe_fd[2];	pid_t pid;	char buf_r[100];	char * p_wbuf;	int r_num;	memset(buf_r, 0, sizeof(buf_r));	/*create pipe*/	if(pipe(pipe_fd)<0)	{		printf("pipe create error!\n");		return -1;	}	/*new son*/	if((pid=fork())==0)	{		printf("\n");		//close son's pipe's write function		close(pipe_fd[1]);		sleep(2);/*use sleep to wait and make sure the father's pipe's read function is closed */		if((r_num=read(pipe_fd[0],buf_r,100))>0)		{			printf("Receive message from father: %s\n", buf_r);		}	close(pipe_fd[0]);	exit(0);	}	else if(pid>0)	{		/*close father's pipe's read function*/		close(pipe_fd[0]);		if(write(pipe_fd[1],"Hello, son!",11)<0)		{			printf("Father write message error!\n");		}else			printf("Father sended out a message! The message is: Hello, son!\n");		close(pipe_fd[1]);		sleep(3);		waitpid(pid,NULL,0);		exit(0);	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?