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