在CI中使用system()
编写了一个代码来启动另一个应用程序,例如abc.exe。现在我怎么知道abc.exe是否已经退出,当它已经退出时,我想运行另一个应用程序,比如说xyz.exe。
答案 0 :(得分:2)
system()
是同步的,即完成后你只需要进入代码的下一条指令,所以基本上它应该是:
system("abc");
system("xyz");
同样system
返回已执行程序的退出状态,因此如果程序之间存在依赖关系并且xyz
未成功执行abc
则无法执行,则应检查ret状态abc
if(system("abc") != -1 )
system("xyz");
答案 1 :(得分:1)
在第一个system(
之后调用应用程序。 System()是同步的。
system("abc");
system("xyz");
像拟人化的通知一样,
同步意味着对系统(“abc”)的调用只会在之后返回 “abc”已经完成。
您可以使用返回值验证执行情况。通常,如果程序当前未执行,则返回非零值。
在许多系统中,0用于表示命令是 成功执行和其他值以指示某种错误。
如果command是空指针,则该函数返回非零值 case命令处理器可用,如果不是,则为零值。 如果command不是空指针,则返回的值取决于 系统和库实现,但通常是预期的 被调用命令返回的状态代码(如果支持)。
答案 2 :(得分:0)
您可以通过查看系统返回给您的内容来检查系统是否正确执行。如果成功执行,返回值将为零(空指针)。
来自C ++参考:
如果command是空指针,则该函数在命令处理器可用时返回非零值,如果不是则返回零值。
如果command不是空指针,则返回的值取决于系统和库实现,但如果支持,通常应该是被调用命令返回的状态代码。