簡體   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