[問題] fclose

看板C_and_CPP作者 (猜猜偶素隨 ? ^*^)時間15年前 (2010/11/25 23:18), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) fclose 後 在windows explorer中 無法刪除檔案 希望得到的正確結果: 正常來說可以被刪除 程式跑出來的錯誤結果: 無法刪除檔案(被OS lock住?) 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) MFC vs2005 有問題的code: (請善用置底文標色功能) file *fp[5]; void savefp() { static first = true; if(first) while(i++<5)fp[i] = fopen(filename[i]);//open 5 file successfully first = false; //file operations here... if(last) while(i++<5) fclose(fp[i]); } main() { savefp(); //some operations last = true; savefp(); //second call } 補充說明: 結果是 fp[4] (最後一個) 無法被刪除 其他都可以刪除 確定fclose(fp[4])回傳值為0 但就是不曉得為什麼不能刪 除非關掉該應用程式 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.204.160.242

11/25 23:26, , 1F
i 怎麼跑的, 資訊太少
11/25 23:26, 1F

11/25 23:26, , 2F
first 有設回 false 嗎
11/25 23:26, 2F
謝謝提醒 已修正 這是psuedo code 確定 fopen fclose 都成功 因為有五個檔案被建立在資料夾中 file1.txt file2.txt file3.txt file4.txt file5.txt 也都有資料被寫入 唯獨file5在 second call後無法被刪除 ※ 編輯: Anonymoux 來自: 123.204.160.242 (11/25 23:33)

11/25 23:38, , 3F
fp[5]爆了吧
11/25 23:38, 3F

11/25 23:39, , 4F
while(i<5)fp[i++]; 這樣應該比較對
11/25 23:39, 4F
文章代碼(AID): #1CxdvZyG (C_and_CPP)