如何使用exec()系列系統調用來實現cp和rm shell命令?我搜索了很多,但沒有找到任何有用的網站/鏈接,有人可以幫忙嗎?我如何使用exec()系列系統調用來實現shell命令cp和rm?
1
A
回答
4
下面是一些例子。
exec
功能與l
在他們的名字作爲自己的參數參數列表。 p
後綴表示應該使用$PATH
找到命令,因此您可以提供命令名稱。
execlp("cp", "cp", "sourcefile", "destfile", (char *)0);
與v
變體採取在單個數組參數參數(「V」代表vector
)。在這種情況下,我沒有使用e
後綴,所以我給了程序的完整路徑。
char *args[] = {"rm", "file1", "file2", 0);
execv("/bin/rm", args);
在這兩種情況下,第一個參數也是程序的名稱,因爲這將在新的進程變得argv[0]
。並且參數的結尾用空指針表示。您應該在使用l
變體時明確提供類型轉換,因爲可變參數函數不會自動將類型轉換爲指針。
+0
這是否回答了您的問題?如果是這樣,您應該通過接受答案來確認:點擊綠色的複選標記。 – Barmar
相關問題
- 1. 系統調用和命令
- 2. Linux系統:結合 「LS」 和 「CP」 命令
- 3. 如何在Go中使用我的系統的命令shell?
- 4. 使用exec()系列運行「cd」命令
- 5. 使用commons-exec的一系列命令
- 6. Powershell調用命令和系統變量
- 7. 使用phonegap通過telnet和exec命令連接兩個系統
- 8. Linux'socketcall'系統調用實現
- 9. 系統調用實現
- 10. PHP系統()函數 - 它使用shell來執行命令嗎?
- 11. 如何使用系統和反引號來運行Unix命令?
- 12. 使用LKM實現Linux系統調用
- 13. 使用系統命令
- 14. 如何在ruby代碼中使用find,-exec和cp命令?
- 15. 在exec系統調用中運行別名命令
- 16. 如何使用shell命令實現MapReduce?
- 17. 如何使用Redis列表來實現聊天系統?
- 18. Perl系統()調用使用哪個shell?
- 19. 使用exec在新進程中執行系統命令
- 20. 什麼系統函數和cp命令在C/Linux中返回
- 21. 從C++調用底層系統命令
- 22. Strace命令只顯示系統調用
- 23. Python - 無法調用系統命令
- 24. 如何在使用exec()系統調用後回到main()?
- 25. 執行shell命令編程android系統
- 26. 使用popen()來調用shell命令?
- 27. perl chdir和系統命令
- 28. Linux系統調用來發現設備的文件系統
- 29. Perl:使用shell環境運行系統命令
- 30. 如何通過系統命令在php中替換exec()?
[使用exec()系列運行「cd」命令](http://stackoverflow.com/questions/9859903/using-the-exec-family-to-run-the-cd-命令) –
@OliCharlesworth不是,因爲'cd'是一個內置的shell。 – Barmar
@Barmar:是的,你說得對,'cp'和'rm'不是內置的。 –