私はいくつかのCを学び始めており、フォークを勉強している間、予期しない出力が得られた関数を待ちます。少なくとも私にとっては。
親から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つの「I'mpid ...」は、待機する親に対して1つだけを出力し、パイプを介して通信する2つの子プロセスを出力することを期待しています。
私のエラーがどこにあるかわかりたら教えてください。