所以我在C中做了一些系统编程。我遇到了一个问题。
我fork()子进程,然后使用pipe()从父进程向子进程发送消息。并且孩子确实从管道接收传入的消息。我想要做的是将这条消息打印到孩子的屏幕上。但是写(stdout,message,xxx)将不起作用,因为它会将消息打印到父屏幕。
所以我想知道为了将信息打印到儿童屏幕需要做些什么。
感谢。
答案 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返回给子进程。