writetest2.c

来自「LINUX进程通信的学习资料」· C语言 代码 · 共 44 行

C
44
字号
#include <unistd.h>#include <sys/types.h>#include <errno.h>main(int argc,char**argv){	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)	{		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();	}	else if(pid>0)	{	close(pipe_fd[0]);//write	memset(r_buf,0,sizeof(r_buf));		if((writenum=write(pipe_fd[1],w_buf,1024))==-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,4096);	close(pipe_fd[1]);	}	}

⌨️ 快捷键说明

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