我正在尝试与当前进程并行执行另一个命令行进程。然而,我发现命令行程序有时会异常退出,这也会导致我的主程序停止运行。
// MAIN PROGRAM
pid = fork();
char *argv[] = { stuff.. };
if (pid == 0) {
int rc = execv("command line program...", argv);
}
// DO OTHER STUFF HERE.
if (pid > 0) {
waitpid(pid, 0, 0);
}
有没有办法在命令行程序异常关闭后保持我的主程序运行?谢谢!
[更新]:是的,主进程正在写入一个文件,命令行程序正在从该文件中读取,但它是一个普通文件,而不是管道。我收到了一个段错误。
我很难复制这个错误,因为子进程并不经常崩溃。但确实会发生。随机崩溃是命令行程序中已知的错误,这就是为什么我希望即使命令行死掉,我的主程序也能继续运行的原因。