遇到的問題: (題意請描述清楚)
如果用了fopen函式開啟檔案,一般來說在檔案寫入或讀取結束後都應該用fclose關閉檔
案,但是最近在看一些範例程式的時候,發現在開啟多個檔案時,如果有任何一個沒有成
功開啟,都是直接return,這樣的作法是否會產生任何可能的錯誤?
舉例來說:
int main()
{
FILE *file1 = fopen(argv[1], "r");
if(!file1) return 1;
FILE *file2 = fopen(argv[2], "rb");
if(!file2) return 2;
FILE *file3 = fopen(argv[3], "w");
if(!file3) return 3;
FILE *file4 = fopen(argv[4], "wb");
if(!file4) return 4;
...
fclose(file1);
fclose(file2);
fclose(file3);
fclose(file4);
}
如果在開啟*file3的階段失敗,程式直接脫離main,但是並未將*file1及*file2關閉。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 203.67.181.135
→
11/03 11:55, , 1F
11/03 11:55, 1F
推
11/03 11:56, , 2F
11/03 11:56, 2F
→
11/03 11:58, , 3F
11/03 11:58, 3F
→
11/03 11:58, , 4F
11/03 11:58, 4F
推
11/03 15:37, , 5F
11/03 15:37, 5F
推
11/03 16:21, , 6F
11/03 16:21, 6F
→
11/03 16:21, , 7F
11/03 16:21, 7F
→
11/03 16:39, , 8F
11/03 16:39, 8F
推
11/03 17:06, , 9F
11/03 17:06, 9F
推
11/03 17:09, , 10F
11/03 17:09, 10F
→
11/03 17:22, , 11F
11/03 17:22, 11F
推
11/03 17:32, , 12F
11/03 17:32, 12F
→
11/03 17:47, , 13F
11/03 17:47, 13F
→
11/03 18:08, , 14F
11/03 18:08, 14F