是否有實現一個函數調用一個fork()
和execve()
沒有簡單的方法?像system()
,但沒有幕後的所有shell的東西。叉高管與易用性系統的()
0
A
回答
2
pid_t
fork_and_execve(const char *path, char *const argv[], char *const envp[])
{
pid_t child_pid;
child_pid = fork();
if (0 == child_pid) {
execve(path, argv, envp);
} else {
return child_pid;
}
}
注意,如果execve()
調用失敗
2
當然這個代碼不處理:
pid_t start(char *cmd, char **argv, char **envp) {
pid_t child = fork();
if(child == 0) {
execve(cmd, argv, envp);
_exit(1);
}
return child;
}
int invoke(char *cmd, char **argv, char **envp) {
int status;
waitpid(start(cmd, argv, envp), &status);
return status;
}
0
對於POSIX系統存在posix_spawn()
:
的的posix_spawn( )和posix_spawnp ()函數應該從指定的過程映像創建一個新的進程(子進程)。新的進程映像應從稱爲新工藝 圖像文件的常規可執行文件來構建。
相關問題
- 1. Maven的高管與多個系統屬性
- 2. 高交易系統中的觸發器
- 3. 高性能高可用跟蹤系統
- 4. 更改叉()系統調用
- 5. 交易系統Sharepoint
- 6. 跨系統交易
- 7. Python包管理模塊系統中的高性能計算機
- 8. 系統或高可用性問題
- 9. MATLAB中的交易系統
- 10. 管系統調用
- 11. C系統調用管道,叉子和execl
- 12. 未定義參考,以提高::系統:: generic_category儘管與boost_system聯
- 13. 選擇性交易管理與Django ORM
- 14. Ruby與社會管理系統的Python!
- 15. 系統編程 - 叉()方法
- 16. 管道系統()?
- 17. 分佈式版本控制系統合併易用性細節
- 18. 內容管理系統安全性?
- 19. 用於高效考勤管理系統的數據庫模式
- 20. 叉(系統調用) - 進程號
- 21. 重要性內核級系統的要求叉,vfork的
- 22. FTP用戶管理系統
- 23. Laravel用戶管理系統
- 24. php用戶管理系統
- 25. 主機系統上是交叉編譯的系統庫嗎?
- 26. GWT與內容管理系統
- 27. 知識管理系統與PHP
- 28. GWT與內容管理系統
- 29. Qt高分系統
- 30. 「警報管理系統」中的Java支持來自交叉技術的應用
是它的簡單代碼超過10行?我不完全確定你在這裏尋找什麼 - C不是包含大量電池的一種語言! –
性能你所擔心的是什麼? –
使用庫。例如巧舌如簧有一個非常漂亮組[進程產卵功能(https://developer.gnome.org/glib/stable/glib-Spawning-Processes.html),使得它很容易。 – unwind