繁体   English   中英

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

[英]Which command to use to execute a program within C++ code [Linux]?

问候,

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

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

请给我建议我应该使用哪个命令。

先感谢您!

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

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

如果您需要知道子代的PID并异步运行它,通常可以使用fork()后跟exec() 如果要通过管道与子进程通信,请使用popen()代替。

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

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

看一下剑桥大学的Fork and Exec教程 ,这很简单直接。 也使用C ++。 请注意,所有相关调用( forkexeclwait )都是C POSIX函数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM