使用哪个命令在C++代码 [Linux] 中执行程序



问候,

我是C++和Linux的新手。我正在寻找一个命令,我用它来在我的源代码中执行 3 个可执行程序 (exe/bin),这就是我想做的:
1. 知道进程是否成功执行(返回值)
2. 了解进程 ID
3. 终止进程

我尝试了System(),但它不会返回错误并且没有PID,也不安全。我快速浏览了一下fork()-exec(),但是是否有可能没有父子关系?另外,我查看了手册页,但我不明白:(

请告诉我我将使用哪个命令。

提前谢谢你!

你看过popen()吗? 这可能是要走的路。尝试使用手册页。

system() 确实以与 wait() 相同的方式返回子进程的退出代码(或在错误时-1,或者如果它未能生成 shell 进程,则返回127)。

如果你需要知道子项的PID并异步运行它,fork()后跟exec()通常是要走的路。如果要通过管道与子进程通信,请使用 popen()。

为了缓解固有的父/子关系,您可能必须守护子进程。

根据定义,在启动新程序时,您始终具有父子关系(除非它们在当前进程中替换您自己的程序;当调用execl而不先fork ing时,您会得到这种关系)。内部的systempopen等函数也调用forkexec变体之一。

看看剑桥大学的 Fork 和 Exec 教程,它非常简单明了。也使用C++。注意所有相关的调用(forkexeclwait)都是C POSIX函数。

最新更新