スレッドからfork() sys_call
を呼び出すことは悪い考えです。 しかし、スレッドがfork()
を使用して新しいプロセスを作成するとどうなりますか?スレッドがフォークするとどうなりますか?
新しいプロセスは、スレッドを作成したメインスレッドの子になります。おもう。
親が最初に終了した場合、新しいプロセスがinitプロセスにアタッチされます。 その親はメインスレッドであり、それを作成したスレッドではありません。
私が間違っている場合は私を修正してください。
#include <stdio.h>
#include <pthread.h>
int main()
{
thread_t pid;
pthread_create(&(pid), NULL, &(f),NULL);
pthread_join(tid, NULL);
return 0;
}
void* f()
{
int i;
i = fork();
if (i < 0) {
// handle error
} else if (i == 0) // son process
{
// Do something;
} else {
// Do something;
}
}
SIGHUBは、親がPOSIXごとの制御プロセスである場合にのみ送信されます。子プロセスがSIGHUBを受け取ることは稀です。 – usr