[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 編程技術 > C/C++ > 正文
一個執行中的程式如何知道自己的 pathname?
Steve Hayman (2001-04-19 10:46:06)

若果 argv[0] 是以 "/" 開始的字,它可能就是你的程式所在地的絕對路徑。 
如果不是那就得照順序檢查 PATH 裡的每一個目錄看看裡面是否有與 argv[0] 
一樣的程式。如果找得到的話將那個目錄與程式名稱兜起來可能就是你要的 
pathname 了。 

不過上述方法找到的並不一定是正確的,因為在程式中用到 exec() 時, 
argv[0] 是可以隨便給的。將 argv[0] 設為與要執行的程式名稱相同只是一 
種慣用法罷了! 

以下的例子可能會使你更清楚些: 

        #include  
        main() 
        { 
            execl("/usr/games/rogue", "vi Thesis", (char *)NULL); 
        } 

這個被執行的程式就會認為它的名字(argv[0] 之值)是 "vi Thesis")。  (http://www.fanqiang.com)
    進入【UNIX論壇

相關文章

======
 

★  樊強制作 歡迎分享  ★