www.pudn.com > pthread_examples.rar > pipewrite.c


#include  
#include  
 
main() 
{ 
	int pipe_fd[2]; 
	pid_t pid; 
	char r_buf[4]; 
	char* w_buf; 
	int writenum; 
	int cmd; 
	 
	memset(r_buf, 0, sizeof(r_buf)); 
	if(pipe(pipe_fd)<0) 
	{ 
		printf("pipe create error\n"); 
		return -1; 
	} 
	 
	if((pid=fork()) == 0)  /*进入父进程*/ 
	{ 
		//sleep(100); 
		printf("parent is closed!\n"); 
		//close(pipe_fd[0]); 
		close(pipe_fd[1]); 
		sleep(10);	 
		exit(0); 
	} 
	else if(pid > 0) 
	{ 
		sleep(1);  //等待子进程完成关闭读端的操作 
 
		//close(pipe_fd[0]);//read 
		w_buf = "111"; 
		if((writenum = write(pipe_fd[1], w_buf, 4)) == -1) 
		{ 
			printf("write to pipe error\n"); 
		} 
		else	 
		{ 
			printf("the bytes write to pipe is %d \n", writenum); 
		} 
			printf("the bytes write to pipe is %d \n", writenum); 
		 
		close(pipe_fd[1]); 
		while(1) 
		{ 
			printf("haha, I am living!\n"); 
		} 
		printf("children is closed!\n"); 
	}	 
}