【发布时间】:2017-02-14 20:47:39
【问题描述】:
我知道从线程调用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;
}
}
【问题讨论】:
标签: c linux operating-system pthreads fork