Unix C-带fork的IPC信号量
我对以下程序有问题: 它应该做什么: 第一个子进程应该从STDIN中获取一个数字,并将其设置为共享变量。 第二个子进程应该从共享变量中读取数字,并将其二进制打印在标准输出上 它的作用是: 它从不要求数字,在运行它之后,它只打印零的inifnite数字。它看起来像是直接跳到第二个孩子身上,永远不会离开它 代码:Unix C-带fork的IPC信号量,unix,ipc,Unix,Ipc,我对以下程序有问题: 它应该做什么: 第一个子进程应该从STDIN中获取一个数字,并将其设置为共享变量。 第二个子进程应该从共享变量中读取数字,并将其二进制打印在标准输出上 它的作用是: 它从不要求数字,在运行它之后,它只打印零的inifnite数字。它看起来像是直接跳到第二个孩子身上,永远不会离开它 代码: 将第一行更改为: if(fork() == 0) 差不多 pid_t processID = fork(); if(processID == 0) 更改第二行,内容为 if(fork(
将第一行更改为:
if(fork() == 0)
差不多
pid_t processID = fork();
if(processID == 0)
更改第二行,内容为
if(fork() == 0)
给另一个人。更明确地说,对于第二行,更改:
}
if(fork() == 0)
{
//second child process
致:
如果剩下的代码正常,它可能会开始工作。至少这将使您的分叉保持良好状态,以便您可以继续处理其余代码。您分叉了两次,并且两次都检查了0。
}
if(fork() == 0)
{
//second child process
}
else
{
if (processID < 0) {
printf ("Fork error\n"); exit(-1);
}
//second child process