作者cory8249 (Cory)
看板C_and_CPP
標題[問題] <unistd.h> 改變目錄 chdir
時間Thu Dec 1 20:31:39 2011
開發平台(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
→ angleevil:#include<unistd.h><--這個是linux的東西.你可能要研究 12/02 09:22
→ angleevil:一下#include <windows.h>比較好. 簡單講是你要找到一個 12/02 09:23
→ angleevil:函式幫你完成修改檔案路徑. 12/02 09:24
→ angleevil:還有大家為什麼要知道你編譯器的下載網址? 12/02 09:27
→ angleevil:上面那句是搞錯了.可以忽略 12/02 09:28
→ purincess:看原文他已經有成功改路徑啦 只是他不知道為什麼每次都 12/02 18:22
→ purincess:要改 12/02 18:22
→ angleevil:其實我的建議是希望原po使用windows的lib來做 12/02 21:09
→ angleevil:畢竟他是在win的平台撰寫程式.使用unix的函式也是可以 12/02 21:09
→ angleevil:但是換到vs時,他大概會想打人吧 12/02 21:10
→ tropical72:拖進去的預設路徑大概會是 C:\Documents and Settings 12/02 21:13
→ tropical72:\User 之類的吧. 12/02 21:13
→ angleevil:我覺得t大的答案是對的,可能理由是你在win7跑時,檔案 12/02 21:27
→ angleevil:在執行檔所在的目錄目錄下實行,因此才可以成功. 12/02 21:28
謝謝各位解答
那我再去看看 windows.h
※ 編輯: cory8249 來自: 140.114.221.54 (12/02 22:10)