'fopen'返回NULL文件指针,即使文件是使用C创建的

时间:2014-02-12 11:29:24

标签: c fopen null-pointer

我使用以下代码以写入模式打开文件:

FILE *pf = fopen("c:\\test.txt", "w");
if (NULL == pf)
{
    printf("File pointer is NULL");
}

有时创建文件,我正确地获取文件指针,但有时我得到日志“文件指针为NULL”,即使文件是在C盘上创建的。我该如何解决?

1 个答案:

答案 0 :(得分:0)

http://msdn.microsoft.com/en-us/library/yeby3zcb.aspx

  

空指针值表示错误。

在现代窗口中,在驱动器C的根目录上创建文件需要管理权限。

您是否可以在安全位置重现相同的行为,例如在 GetTempPath 函数返回的临时目录中?

  

如果发生错误,则设置全局变量 errno 并可以使用   获取具体的错误信息。

检查'errno'值。它应包含 EACCES EPERM 等内容。

你说:

  

...即使文件是在c盘中创建的。

我猜这个文件仍然来自管理员之前的一次成功运行。检查创建时间戳。