无法在C中打开文件
我无法在C中打开文件,即使该文件存在且未被任何应用程序使用。有人能告诉我是什么导致了这个问题吗无法在C中打开文件,c,windows,file,fopen,C,Windows,File,Fopen,我无法在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" )) == NU
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
,失败时返回NULL
:
如果成功,则为零;失败时的错误代码。有关这些错误代码和其他错误代码的更多信息,请参阅_doserrno、errno、_sys\u errlist和_sys\u nerr
NULL
宏是#define
d to0
(可能),这意味着如果打开文件,则发布代码中的if()
是:
if (0 == 0)
这显然是真的。改为:
if ((error = fopen_s(&oud, path, "rb" )) != 0)
成功时返回0
,失败时不返回NULL
:
如果成功,则为零;失败时的错误代码。有关这些错误代码和其他错误代码的更多信息,请参阅_doserrno、errno、_sys\u errlist和_sys\u nerr
NULL
宏是#define
d to0
(可能),这意味着如果打开文件,则发布代码中的if()
是:
if (0 == 0)
这显然是真的。改为:
if ((error = fopen_s(&oud, path, "rb" )) != 0)
我不知道可能是什么错误,但是您没有得到有用的错误消息的原因可能是因为您调用了
perror(NULL)
而不是检查fopen_s返回的错误代码。我不知道错误可能是什么,但您没有得到有用的错误消息的原因可能是因为您调用了perror(NULL)代码>而不是检查fopen_s返回的错误代码。