无法在C中打开文件

par*_*ara 0 c windows fopen file

我无法在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;
    }
}
Run Code Online (Sandbox Code Playgroud)

输出为:"无错误".

hmj*_*mjd 7

fopen_s()0成功回报,而不是NULL失败:

如果成功则为零; 失败时的错误代码.有关这些错误代码和其他错误代码的详细信息,请参阅_doserrno,errno,_sys_errlist和_sys_nerr.

NULL#defined至0(可能)如果文件被打开,这意味着if()在发布代码:

if (0 == 0)
Run Code Online (Sandbox Code Playgroud)

这显然是真的.改成:

if ((error = fopen_s(&oud, path, "rb" )) != 0)
Run Code Online (Sandbox Code Playgroud)