经由父进程向子进程传送数据

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>

#define MAXLINE 100

int main( void )
{
	int	fd[2];
	pid_t	pid;
	char	line[MAXLINE];
	int	n;

	if(pipe( fd ) < 0 )
		printf( "pipe error!\n" );
	 if((pid = fork()) < 0 ) {
		printf( "fork error!\n" );	
	} else if( pid > 0 ) {
		close( fd[0] );
		write( fd[1], "hello world\n", 12 );
	} else {
		close( fd[1] );
		n = read( fd[0], line,  12 );
		write( STDOUT_FILENO,  line, n );
	}
		
	exit( 0 );
}

在上面直接对管道调用read 和write 。更好的办法的是将管道描述符复制到标准的输入和输出。

你可能感兴趣的:(经由父进程向子进程传送数据)