2013-01-09 64 views
0

我正在編寫一個類似C的小控制檯程序,以及ls,tac和dir的實現。將目錄添加到PATH的execvp()

我使用execvp()函數來覆蓋進程的分叉子進程,但是當用戶插入上述3個命令之一時,我必須執行自己的版本,而不是系統中的版本。

我知道execvp()使用系統PATH變量來搜索可執行文件的不同位置。我可以以某種方式編輯我的程序中的PATH,因此我可以添加一個自定義目錄作爲execvp()搜索的第一個位置?

謝謝!

+2

這裏有一個很好的解釋:http://stackoverflow.com/questions/7630551/using-a-new-path-with-execve-to-run-ls-command – hmatar

+0

你不能只把整個路徑? –

回答

0

您可以使用setenv更改PATH - 但請注意,在執行exec之前只需明確檢查這些命令可能會更簡單。