C - 打开无效文件
答
在PARAM列表:
FILE pFile ;
则:
pFile = fopen ("myfile.txt","r");
if (pFile == NULL)
printf("No Such File !! ");
答
当fopen
失败时,它返回NULL
并设置errno
以指示错误的类型。
检查返回值,如果是NULL
检查errno
。您可以使用perror
或strerror
等功能来显示有关这些错误的简单消息。
答
为了使它更加清晰:
f = fopen("some-file-name.ext", "r");
if (f == NULL) reporterror();
但是,也许你不想使用fopen
为检查存在和访问权限。你应该看看stat
和access
。无论是在C库可用,使用人
答
见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