我无法在C中打开文件,即使该文件存在且未被任何应用程序使用。有人能告诉我是什么原因引起了这个问题吗?
int main()
{
FILE* oud;
unsigned size;
unsigned* bytes;
char path[] = "C:\\Users\\Ruben\\Documents\\test.txt";
errno_t error;
if ((error = fopen_s(&oud, path, "rb" )) == NULL)
{
perror(NULL);
getchar();
return -1;
}
fclose(oud);
getchar();
return 0;
}
}
输出为:“无错误”。
答案 0 :(得分:7)
fopen_s()
在成功时返回0
,而在失败时返回NULL
:
如果成功则为零;失败时的错误代码。有关这些以及其他错误代码的详细信息,请参阅_doserrno,errno,_sys_errlist和_sys_nerr。
NULL
宏#define
d到0
(可能),这意味着如果文件已打开,则已过帐代码中的if()
为:
if (0 == 0)
这显然是对的。改为:
if ((error = fopen_s(&oud, path, "rb" )) != 0)