使用我用ANSI C编写的程序有问题。 当尝试在读取模式下打开一个名为fd的文件(称为fp的文件指针)时,我可以毫无问题地访问它。然后我fclose fp。当尝试使用模式w或a +中的fopen再次打开fp时,它会使用perror给我“权限被拒绝”。 我不明白为什么,我试图先用+打开但是它仍然给了我这个权限错误。
我在Windows 10上运行Visual Studio 2015。 试图重置Visual Studio但它仍然无法正常工作。 这是一个最小的例子:
#include <stdio.h>
int main(void) {
FILE *fp = NULL;
if ((fp = fopen("1.txt", "w")) == NULL) { perror("error"); exit(1); }
fprintf(fp, "You smell");
return 0;
}
输出:错误:权限被拒绝。
答案 0 :(得分:1)
使用代码中的write选项检查要打开的文件的写入权限。
if ((fp = fopen("1.txt", "w")) == NULL)
&#34; 1.txt&#34;文件必须具有写权限。
答案 1 :(得分:1)
[...]在模式w或a +中使用fopen它会给我&#34;许可被拒绝&#34;。我无法理解为什么,我试图先用+打开,但它仍然给了我这个权限错误。
您运行该程序的用户似乎没有对相关文件的写访问权。
要成功以写入和/或附加模式打开文件,运行该程序的用户需要具有写入权限。
要解决您面临的问题,