pipe_writeato.c

来自「关于进程间通信的代码集锦2」· C语言 代码 · 共 53 行

C
53
字号
#include <unistd.h>#include <sys/types.h>#include <errno.h>int main(){	int pipe_fd[2];	pid_t pid;	char r_buf[4096];	char w_buf[4096*2];		int writenum;	int rnum;		memset(r_buf,0,sizeof(r_buf));	if(pipe(pipe_fd)<0)	{		printf("pipe create error\n");		return -1;	}	if((pid=fork())==0)	{		printf("In child process\n");				close(pipe_fd[1]);		while(1)		{				sleep(1);			rnum=read(pipe_fd[0],r_buf,1000);			printf("child:readnum is %d\n",rnum);					}		close(pipe_fd[0]);				exit(0);			}	else if(pid>0)	{				printf("In parent process\n");		close(pipe_fd[0]);		memset(r_buf,0,sizeof(r_buf));		if((writenum=write(pipe_fd[1],w_buf,5000))==-1)		{			printf("write to pipe error\n");		}		else		{			printf("the bytes write to pipe is %d \n",writenum);		}		writenum=write(pipe_fd[1],w_buf,5000);		close(pipe_fd[1]);	}		return 0;}

⌨️ 快捷键说明

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