我一直在寻找该答案的一段时间,但找不到解决方案。基本上,我正在尝试读写计算机c驱动器中的文件。但是,因为它是Windows 7,所以它选择在背面感到痛苦,并且不向我的C程序授予这样做的权限。我尝试以管理员模式运行它,以及尝试使用其他目录。
运行以下代码时:
FILE *fp = fopen(strIn, "r");
if(fopen(strIn, "r") == NULL)
{
printf("Error: %d (%s)\n", errno, strerror(errno));
getchar();
}
返回的错误是“错误13权限被拒绝”。我知道微软真的不喜欢再使用
fopen
了,因为它更喜欢fopen_s
,但是我很难理解如何实现它,并且它上也缺少资源。有什么办法可以解决这个问题,因为它确实让我感到困惑。非常感激,jack
最佳答案
您的代码两次打开文件:
FILE *fp = fopen(strIn, "r");
if(fopen(strIn, "r") == NULL) /* Second open, leaks FILE *! */
这可能会导致错误,因为Windows对于允许多次打开文件可能会很挑剔。第二行应显示为:
if(fp == NULL)
关于c - 由于权限原因,无法在Windows 7中使用fopen进行读写,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11358001/