我有一个C程序使用Director::getInstance()->replaceScene(TransitionFade::create(0.5, scene, Color3B(0, 0, 0)));
调用外部命令,但是,我不知道为什么外部程序会偶尔崩溃,导致整个程序崩溃,无论如何我可以防止即使外部程序崩溃我的程序崩溃了?
EDIT1: 这里有一些代码,这是一个大项目的一部分,可以在代码中看到,最初他们使用scp将文件传输到服务器或从服务器传输文件,由于一些限制,我编写了我们自己的scp版本scpcontract和scpexpand,然后我将它替换为函数,然后整个程序偶尔开始崩溃,崩溃的输出是报告" KEYERROR"并且没有追溯(我无法打印它们,我不知道为什么),但是当我查看内核环消息时,我看到有一个程序崩溃叫做#34; expand.so&#34 ;与此同时,我不确定这是什么" expand.so",因为我在项目中没有这个文件。
system
答案 0 :(得分:2)
当您通过system()
调用另一个程序时,会生成一个新进程,并使用您提供的命令在其中执行shell。
通常,在大多数操作系统上,子进程崩溃不会直接导致父进程崩溃。
您的父进程(调用system()
)可能存在一个错误,当子进程由于某种原因失败时会让它崩溃。您需要对此进行调试。