无法在C中打开文件

时间:2012-10-15 14:06:51

标签: 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" )) == NULL)
    {
        perror(NULL);
        getchar();
        return -1;
    }

    fclose(oud);
    getchar();
    return 0;
    }
}

输出为:“无错误”。

1 个答案:

答案 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)