我使用pthread_create()创建一个线程,在该线程内,我使用fork+execlp加载一个新脚本。
但问题是某些time fork()调用很好,但它没有执行execlp调用。所以我有几个父进程正在运行,这就是一些脚本被遗漏的原因。
例如:如果从我的主程序应该执行4个脚本。
我创建了4个线程,其中使用fork+execlp执行脚本。
但当我看到它运行的脚本是什么时,它只显示3个脚本和一个带有父名称的进程。
你能告诉我处理这种情况的最好方法是什么吗?
最佳答案
听起来execlp()
调用可能失败了。如果成功,它就永远不会返回,因此从execlp()
返回的任何值都表示失败。调用后立即调用perror("execlp")
显示错误,然后_exit(1);
有新的子进程退出。
关于c - pthread fork和exec,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18749457/