タイトルのボーナスの質問で、プロセスグループが子孫を持つことはできますか?
ベストアンサー1
実験を通して非常に簡単に知ることができます。私はここで「二重十字」があなたが意味するものであると仮定していますただ二重交配。次のプログラムを検討してください。
#include <stdio.h>
#include <unistd.h>
int main(void)
{
printf("original pid/pgid: %d/%d\n", getpid(), getpgrp());
if (fork() != 0) { return 0; }
printf("after first fork pid/pgid: %d/%d\n", getpid(), getpgrp());
if (fork() != 0) { return 0; }
printf("after second fork pid/pgid: %d/%d\n", getpid(), getpgrp());
return 0;
}
プログラムはプロセスIDとプロセスグループIDを印刷して分岐し、サブプロセスはそれを再印刷して再分岐し、サブプロセスは再印刷します。
プログラムの実行例:
$ ./a.out
original pid/pgid: 7306/7306
after first fork pid/pgid: 7307/7306
after second fork pid/pgid: 7308/7306
ご覧のとおり、プロセスグループIDは四半期間で変更されません。