gva*_*o87 3 c multithreading pthreads process exec
我认为问题是不言自明的.
我知道exec运行在另一个进程上,所以如果我想要一个目录,我会做那样的事情.
int pid;
if((pid = fork()) != -1) {
if(!pid) {
execl("/bin/ls", "-a", "-l", (char *) 0);
} else {
wait(&status);
}
} else //error
Run Code Online (Sandbox Code Playgroud)
如果你想创建一个进程,那很好,但线程呢?我虽然冷杉创建线程然后exec函数,但这将使我刚刚创建的线程有两个进程
这是不可能的,exec只会用指定的可执行文件替换当前进程,因此您的原始进程不再存在。此外,进程是比线程更高的执行单元,因此“在另一个线程中运行进程”是没有意义的。