3
A
回答
2
在PARAM列表:
FILE pFile ;
則:
pFile = fopen ("myfile.txt","r");
if (pFile == NULL)
printf("No Such File !! ");
0
3
當fopen
失敗時,它返回NULL
並設置errno
以指示錯誤的類型。
檢查返回值,如果是NULL
檢查errno
。您可以使用perror
或strerror
等功能來顯示有關這些錯誤的簡單消息。
1
爲了使它更加清晰:
f = fopen("some-file-name.ext", "r");
if (f == NULL) reporterror();
但是,也許你不想使用fopen
爲檢查存在和訪問權限。你應該看看stat
和access
。無論是在C庫可用,使用人
0
見the possible errors爲open
:
不過,我認爲你將有一個很難找到一種方法來確定一個文件名是無效的。在大多數系統上(Windows除外),任何不太長的字符串都可能有效(模數/
被解釋爲路徑分隔符)。
這根本不是一個好的錯誤信息。 「沒有這樣的文件」只是可能的失敗之一。 – Mat 2011-04-10 14:09:38
這是唯一可能的選項,因爲如果文件損壞,他不會像程序那樣加載,但他可以通過字符(或行或更多)讀取其字符char。 – Batman 2011-04-11 07:05:10
不,不是。這可能是文件或路徑上的權限問題。這也可能是一個資源分配錯誤(fopen可以調用'malloc',這可能會失敗)。如果問題可能完全不同,說「沒有這樣的文件」是不好的做法,並且會使調試更加困難。 – Mat 2011-04-11 07:16:10