2016-10-04 35 views
0

所以我在做一些系统编程C.我遇到了一个问题。如何查看子进程的stdout?

我fork()一个子进程,然后用pipe()从父进程发送消息给子进程。孩子确实收到来自管道的传入消息。我想要做的是将这个信息打印到孩子的屏幕上。但是写(标准输出,消息,xxx)将不起作用,因为它会将消息打印到父屏幕。

所以我想知道需要做什么才能将消息打印到孩子的屏幕上。

感谢。

+0

你需要一个包含程序和所有数据的相同的地址空间拷贝让孩子写信给自己的STDOUT。 – user3344003

回答

0

不使用写(标准输出.....

试试像下面:打印“子进程”,从管接收到的消息功能

void main(void) 
{ 
    pid_t pid; 

    pid = fork(); 
    if (pid == 0) 
      ChildProcess(); 
    else 
      ParentProcess(); 
} 

void ChildProcess(void) 
{ 
    int i; 


    printf(" *** Message recieved from parent pipe ***\n"); 
} 

这是它背后的概念当主系统调用fork()返回子进程ID给父进程,并返回0给子进程。

相关问题