【发布时间】:2013-03-23 02:19:27
【问题描述】:
我不明白为什么这似乎以 errno 为 2 失败:
char debugText [256];
sprintf (debugText, "C:\\List.txt");
dfile = fopen( debugText, "w");
fprintf ( dfile, " err %d \n", errno);
我说的似乎是因为当 dfile 为 NULL 时,文件被创建并填充了我的输出。
那是怎么回事?
【问题讨论】:
-
dfile是什么类型?NULL的测试在哪里? -
看看
strerror(),它会返回一个字符串,为您解释errno。 -
(对于 googlers)对我来说,文件没有写权限。在 Windows 上:右键单击 > 属性 > 安全 > 编辑。然后允许所有用户修改
-
@SergioBasurco 也许这是一个更好的解决方法,使文件指向允许普通用户写入的位置。不是每个人都在他们的电脑上拥有管理员访问权限,这些权限不应用于纠正编程错误。