0

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

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

有时会创建文件,并且我会正确获取文件指针,但有时即使文件是在 C 驱动器上创建的,我也会收到日志“文件指针为 NULL”。我该如何解决?

4

1 回答 1

0

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

空指针值指示错误。

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

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

如果发生错误,则设置全局变量errno并可用于获取特定的错误信息。

检查“errno”值。它应该包含类似EACCESEPERM的内容。

你说:

...即使文件是在 C 驱动器中创建的。

我猜这个文件仍然是以前在管理员下成功运行的文件之一。检查创建时间戳。

于 2014-02-12T11:40:16.370 回答