※ 引述《HenryCheng.bbs@ptt.cc (......)》之銘言:
> 想請教一個小問題
> 我用fopen寫了一個小程式想要讀取檔案
> 為了程式移植方便 我想用一個共用的路徑
> 可是當我把路徑寫 ~/abc.conf 他卻找不到
> 除非改成絕對路徑 /home/user/abc.conf
> 請問有人有同樣的問題嗎? 該怎麼解決呢?
> 謝謝
我想這是因為 "~" (tilde) 是由 shell 做展開代換的,而你直接傳給 fopen
的參數有 ~ 符號時,shell 管不到你程式裏面怎麼寫,因此 fopen 會失敗。
關於 tilde expansion 請參考 shell 的 manpage,例如 bash 的 "Tilde
Expansion" 那一節。大致上, ~ 符號會被 shell 展開為 $HOME 環境變數
的內容,因此可能的解決方式就是利用 stdlib 的 getenv() 取得 $HOME 的
內容。
--
※ Origin: SayYA 資訊站 <bbs.sayya.org>
◆ From: adsl-070-155-125-254.sip.asm.bellsouth.net