[問題] 使用system("")的小疑惑

看板C_and_CPP作者 (我愛阿蓉)時間15年前 (2009/08/01 23:05), 編輯推噓4(409)
留言13則, 5人參與, 最新討論串1/2 (看更多)
是這樣的~ 我想要在程式執行到某步驟 去run另一個exe檔案 我只知道很簡單的使用system("c:\\folder\\xxx.exe");這樣 但我這個xxx.exe他會去讀取 某個resource.cfg檔案 我用滑鼠點xxx.exe ok他可以執行 但是我使用system去呼叫 他就說xxx.exe找不到resource.cfg.... 另外我再試著用 命令提示字元 c:\>c:\folder\xxx.exe......一樣說讀不到cfg檔案 我改用c:\>cd folder c:\folder>xxx.exe.................用這樣就可以跑這個執行檔了 我在想是不是system呼叫 環境上路徑上還是什麼地方 我忽略了或是我不明白的觀念??? 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.207.187

08/01 23:07, , 1F
程式執行時會有它的工作目錄 如果你在C:\下直接下指令執行
08/01 23:07, 1F

08/01 23:07, , 2F
工作目錄就會在C:\ 你讀取的cfg檔可能是用相對路徑表示
08/01 23:07, 2F

08/01 23:08, , 3F
這時相對的就不是你的程式路徑 而是工作目錄C:\了
08/01 23:08, 3F

08/01 23:10, , 4F
那這樣好像就沒有方法 有辦法解決我這個問題耶= =
08/01 23:10, 4F

08/01 23:15, , 5F
還是要我用system 用cd 先切到那個目錄下?
08/01 23:15, 5F

08/01 23:15, , 6F
這樣也不行 因為 system 的呼叫之間是獨立的
08/01 23:15, 6F

08/01 23:17, , 7F
不過你倒是可以用和命令列提示字元中相同的方法
08/01 23:17, 7F

08/01 23:17, , 8F
我想試試看 結果連cd\這些也不知道怎麼表達XD 該怎麼辦= =
08/01 23:17, 8F

08/01 23:17, , 9F
用 & 連接多個指令 例如 system("cd folder & xxx.exe");
08/01 23:17, 9F

08/01 23:22, , 10F
我測試了一下!! 但如果我是在VC偵錯模式下執行程式cd\好像
08/01 23:22, 10F

08/01 23:23, , 11F
阿 沒事 我成功了= = 謝謝LPH66大大
08/01 23:23, 11F

08/01 23:33, , 12F
用 chdir ?
08/01 23:33, 12F

08/01 23:53, , 13F
可以簡單在指令前後加""字元
08/01 23:53, 13F
文章代碼(AID): #1AT5cwBR (C_and_CPP)
文章代碼(AID): #1AT5cwBR (C_and_CPP)