我开始学习一些 C 语言,在学习 fork、wait 函数时,我得到了一个意想不到的输出。至少对我来说。
有没有办法从父进程中只创建 2 个子进程?
这是我的代码:
#include <sys/types.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/wait.h>
int main ()
{
/* Create the pipe */
int fd [2];
pipe(fd);
pid_t pid;
pid_t pidb;
pid = fork ();
pidb = fork ();
if (pid < 0)
{
printf ("Fork Failed\n");
return -1;
}
else if (pid == 0)
{
//printf("I'm the child\n");
}
else
{
//printf("I'm the parent\n");
}
printf("I'm pid %d\n",getpid());
return 0;
}
这是我的输出:
I'm pid 6763
I'm pid 6765
I'm pid 6764
I'm pid 6766
请忽略管道部分,我还没有走那么远。我只是试图只创建 2 个子进程,所以我希望 3 个“我是 pid ...”为我将等待的父进程和 2 个将通过管道通信的子进程输出只有 1 个。
如果您看到我的错误在哪里,请告诉我。