我一直在寻找该答案的一段时间,但找不到解决方案。基本上,我正在尝试读写计算机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/

10-13 06:41