1
是否有一個像which
命令一樣工作的POSIX函數?也就是說,我將它傳遞給一個命令名稱,並在$PATH
中查找具有該名稱的可執行文件,並返回該命令的絕對路徑(如果有)。如何複製POSIX-C中'which'命令的行爲?
更長的解釋:我的POSIX-C應用程序想要啓動一個子進程,其進程可能被稱爲foo
或bar
。我的第一個想法是類似的東西(忽略,我需要孩子的stdin/stdout/stderr
):
system("which foo && foo || which bar && bar");
我不喜歡這種一般的做法,因爲這猛推關於過程調用的所有錯誤到子進程的退出碼stdout/stderr
(我需要在我的應用程序中作爲二進制流!)。
所以看起來我需要複製在我的應用程序代碼的which
行爲,定位foo
或bar
可執行文件。有沒有合適的POSIX函數,或者你是否有代碼片段?