[問題] <unistd.h> 改變目錄 chdir

看板C_and_CPP (C/C++)作者 (Cory)時間14年前 (2011/12/01 20:31), 編輯推噓0(0014)
留言14則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Win XP Win 7 x64 Code::Blocks + MinGW 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) NO 問題(Question): 我設計一個程式 類似 batch 的功能 執行一些指令 (其他程式的指令) 但是我需要改變目前的路徑 至 引數的位置 例如我拖一個檔案(在 D:\User) 進來 然後接下來的步驟、過程都寫在 D:\User 直到程式結束都不改變 Win7 跑很順 不用加什麼 chdir 就可以跑了 但是 XP 會找不到路徑 所以參考Google到結果 要加 chdir 這個指令 ( #include<unistd.h> ) 才能順利運行 (但是還是怪怪的,每次使用前都要加,不然還是無效) 餵入的資料(Input): 拖曳 abc123.v 至 auto_iverilog.exe程式上 也就是 argv[1] = "C:\xxxxx\zzzzz\abc123.v" 預期的正確結果(Expected Output): 只要能夠順利定位 結果都正確 錯誤結果(Wrong Output): 找不到指定檔案 (路徑不正確) 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/mCiiHy6p 補充說明(Supplement): 其中 iverilog , vvp , gtkwave 都有加入系統環境變數 其程式如下: http://bleyer.org/icarus/ 非常感謝各位的幫忙 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.221.54

12/02 09:22, , 1F
#include<unistd.h><--這個是linux的東西.你可能要研究
12/02 09:22, 1F

12/02 09:23, , 2F
一下#include <windows.h>比較好. 簡單講是你要找到一個
12/02 09:23, 2F

12/02 09:24, , 3F
函式幫你完成修改檔案路徑.
12/02 09:24, 3F

12/02 09:27, , 4F
還有大家為什麼要知道你編譯器的下載網址?
12/02 09:27, 4F

12/02 09:28, , 5F
上面那句是搞錯了.可以忽略
12/02 09:28, 5F

12/02 18:22, , 6F
看原文他已經有成功改路徑啦 只是他不知道為什麼每次都
12/02 18:22, 6F

12/02 18:22, , 7F
要改
12/02 18:22, 7F

12/02 21:09, , 8F
其實我的建議是希望原po使用windows的lib來做
12/02 21:09, 8F

12/02 21:09, , 9F
畢竟他是在win的平台撰寫程式.使用unix的函式也是可以
12/02 21:09, 9F

12/02 21:10, , 10F
但是換到vs時,他大概會想打人吧
12/02 21:10, 10F

12/02 21:13, , 11F
拖進去的預設路徑大概會是 C:\Documents and Settings
12/02 21:13, 11F

12/02 21:13, , 12F
\User 之類的吧.
12/02 21:13, 12F

12/02 21:27, , 13F
我覺得t大的答案是對的,可能理由是你在win7跑時,檔案
12/02 21:27, 13F

12/02 21:28, , 14F
在執行檔所在的目錄目錄下實行,因此才可以成功.
12/02 21:28, 14F
謝謝各位解答 那我再去看看 windows.h ※ 編輯: cory8249 來自: 140.114.221.54 (12/02 22:10)
文章代碼(AID): #1ErtEjvu (C_and_CPP)
文章代碼(AID): #1ErtEjvu (C_and_CPP)