我正在使用以下代码以写入模式打开文件:
FILE *pf = fopen("c:\\test.txt", "w");
if (NULL == pf)
{
printf("File pointer is NULL");
}
有时会创建文件,并且我会正确获取文件指针,但有时即使文件是在 C 驱动器上创建的,我也会收到日志“文件指针为 NULL”。我该如何解决?
我正在使用以下代码以写入模式打开文件:
FILE *pf = fopen("c:\\test.txt", "w");
if (NULL == pf)
{
printf("File pointer is NULL");
}
有时会创建文件,并且我会正确获取文件指针,但有时即使文件是在 C 驱动器上创建的,我也会收到日志“文件指针为 NULL”。我该如何解决?
http://msdn.microsoft.com/en-us/library/yeby3zcb.aspx:
空指针值指示错误。
在现代 Windows 中,在驱动器 C 的根目录上创建文件需要管理权限。
您能否在安全位置重现相同的行为,例如在GetTempPath函数返回的临时目录中?
如果发生错误,则设置全局变量errno并可用于获取特定的错误信息。
检查“errno”值。它应该包含类似EACCES或EPERM的内容。
你说:
...即使文件是在 C 驱动器中创建的。
我猜这个文件仍然是以前在管理员下成功运行的文件之一。检查创建时间戳。