如何查看子进程的标准输出?

时间:2016-10-04 01:46:35

标签: operating-system

所以我在C中做了一些系统编程。我遇到了一个问题。

我fork()子进程,然后使用pipe()从父进程向子进程发送消息。并且孩子确实从管道接收传入的消息。我想要做的是将这条消息打印到孩子的屏幕上。但是写(stdout,message,xxx)将不起作用,因为它会将消息打印到父屏幕。

所以我想知道为了将信息打印到儿童屏幕需要做些什么。

感谢。

1 个答案:

答案 0 :(得分:0)

不要使用写(stdout .....

尝试以下内容:在“ChildProcess”功能

中打印从管道接收的消息
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()时,会创建其地址空间的相同副本,包括程序和所有数据。系统调用fork()将子进程ID返回给父进程,并将0返回给子进程。