[問題] fopen回傳null該怎麼辦

看板C_and_CPP (C/C++)作者 (我愛阿蓉)時間16年前 (2009/07/10 17:55), 編輯推噓6(609)
留言15則, 8人參與, 最新討論串1/3 (看更多)
大家好 是這樣的.... 我目前自己寫的程式 想到別台電腦上跑 因為不是什麼大程式 只不過讀寫檔案而已 自己的電腦跑是OK的不會出錯 丟到另一台舊電腦 也是可以跑沒有錯誤 問題就在我丟到另一台電腦 他卻會出現assertion fail ... fwrite.c Expression: (stream!=NULL) _VALIDATE_RETURN( (stream != NULL), EINVAL, -1); 是出現在下面這段 FILE * pFile; pFile=fopen("C:\\test.bin","wb"); fwrite(...,...,...,pFile); 我發現pFile得到fopen的return值後 會是null.... 沒道理阿= = 我找不出錯誤 只能想說三台電腦平台上的差異 就是壞掉的這台是vista 32bit 可是為什麼會一直return null... 請問有人知道是什麼原因嘛? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.207.187 ※ 編輯: QQ29 來自: 140.113.207.187 (07/10 18:01)

07/10 18:07, , 1F
下中斷點在fwrite,檢查有無產生test.bin,監看式檢查$err,hr
07/10 18:07, 1F

07/10 18:07, , 2F
虛擬變數(虛擬暫存器),要自己手動加
07/10 18:07, 2F

07/10 18:15, , 3F
$err,hr0x00000005 存取被拒.....奇怪= =
07/10 18:15, 3F

07/10 18:20, , 4F
是不是vista有什麼怪設定! 我把它存到e: 好像過了那行了
07/10 18:20, 4F

07/10 18:20, , 5F
暫存器寫S_OK..
07/10 18:20, 5F

07/10 18:44, , 6F
我知道ntfs作業系統可以設定寫入權限啦
07/10 18:44, 6F

07/10 18:46, , 7F
嗯,可能是OS權限設定吧
07/10 18:46, 7F

07/10 20:23, , 8F
阿 ntfs是檔案系統 我一定是昏了頭XD
07/10 20:23, 8F

07/10 23:40, , 9F
開檔先檢查回傳的 fp 是好習慣, 能的話再 GetLastError()
07/10 23:40, 9F

07/11 12:24, , 10F
推樓上的, 等到系統一大起來 要找出哪裡assert,就..
07/11 12:24, 10F

07/11 12:25, , 11F
return null 就是找不到該檔案,會是環境變數的問題嗎?
07/11 12:25, 11F

07/11 13:05, , 12F
Vista 印象中會保護系統碟...
07/11 13:05, 12F

07/11 20:04, , 13F
return null只能說開檔失敗,不能說找不到檔案 XD
07/11 20:04, 13F

07/12 00:15, , 14F
爬文 也沒人遇到這問題耶!難道大家都沒有再vista寫程式嘛@@
07/12 00:15, 14F

07/13 10:59, , 15F
看 GetLastError 不就好了 @@?
07/13 10:59, 15F
文章代碼(AID): #1ALn0Hy1 (C_and_CPP)
文章代碼(AID): #1ALn0Hy1 (C_and_CPP)