0
私はハロー世界のコードのこの部分を実行しようとしていますが返されます。GETPID()は、予期しない値
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
char string1[] = "\n Hello";
char string2[] = " World.\n";
int main(void)
{
int childpid;
if((childpid = fork()) == -1){
printf("\n Can't fork.\n");
exit(0);
}
else if(childpid == 0){ /* Child process */
printf("\n Child: My pid = %d, Parent pid = %d \n", getpid(), getppid());
exit(0);
}
else{ /* Parent Process */
printf("\n Parent: Child pid = %d, My pid = %d, Parent pid = %d \n", childpid, getpid(),getppid());
exit(0);
}
}
私は取得しています出力は、子供の親PIDに関しては毎回異なります。
~$ ./f
Parent: Child pid = 6394, My pid = 6393, Parent pid = 27383
Child: My pid = 6394, Parent pid = 1842
~$ ./f
Parent: Child pid = 6398, My pid = 6397, Parent pid = 27383
Child: My pid = 6398, Parent pid = 6397
pid = 1842
がどのプロセスに属しているかを調べたところ、/sbin/upstart --user
のPIDであることがわかりました。誰でもこれらの結果を解釈してください。
waitpidの。あなたが貼り付けたコードは私のマシンで予想される動作を示しています –