看板 C_and_CPP 關於我們 聯絡資訊
遇到的問題: (題意請描述清楚) 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
ledia:i 怎麼跑的, 資訊太少 11/25 23:26
ledia:first 有設回 false 嗎 11/25 23:26
謝謝提醒 已修正 這是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)
stupid0319:fp[5]爆了吧 11/25 23:38
stupid0319:while(i<5)fp[i++]; 這樣應該比較對 11/25 23:39