若果 argv[0] 是以 "/" 開始的字,它可能就是你的程式所在地的絕對路徑。 如果不是那就得照順序檢查 PATH 裡的每一個目錄看看裡面是否有與 argv[0] 一樣的程式。如果找得到的話將那個目錄與程式名稱兜起來可能就是你要的 pathname 了。
不過,用上述方法找到的名字並不一定是對的,因為在程式中用到 exec() 時, argv[0] 是可以隨便給的。將 argv[0] 設為與要執行的程式名稱相同只 是一種慣用法罷了!
以下的例子可能會使你更清楚些:
#include <stdio.h> main() { execl("/usr/games/rogue", "vi Thesis", (char *)NULL); }這個被執行的程式就會認為它的名字(argv[0] 之值)是 "vi Thesis")。