我正在上一门OS课,并试图绕过这个问题,任何帮助将不胜感激:
如果一个进程中的多个线程之一进行exec()调用,那么其他线程会怎样?为什么?
我对exec()的理解是用一个新进程替换了当前进程,它与fork()的主要区别在于fork()创建了一个克隆,最终导致了重复。
因此,如果exec()替换当前进程,它将杀死旧进程的线程并用新线程替换它们吗?任何帮助将不胜感激。
在符合POSIX的类Unix系统上:
从具有多个线程的进程中调用任何exec函数将导致所有线程终止,并加载并执行新的可执行映像。不得调用析构函数或清除处理程序。
后exec*
完成,只有一个线程。
http://pubs.opengroup.org/onlinepubs/9699919799/functions/exec.html
(顺便说一句,我认为他们的意思是写“对任何exec函数的成功调用...”,因为文本对于不成功的调用没有意义。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句