由于权限,无法在Windows 7中使用fopen进行读取或写入

Jac*_*ter 2 c windows fopen windows-7

我一直在寻找这个答案,但我找不到解决方案.基本上我正在尝试读取和写入计算机的c盘中的文件.然而,因为它是Windows 7,它选择背面的痛苦并且不允许我的C程序执行它.我尝试在管理员模式下运行它以及尝试使用不同的目录.运行以下代码时:

FILE *fp = fopen(strIn, "r");
if(fopen(strIn, "r") == NULL)
{ 
    printf("Error: %d (%s)\n", errno, strerror(errno));
    getchar();
}
Run Code Online (Sandbox Code Playgroud)

返回错误是"错误13权限被拒绝".我知道微软并不喜欢使用fopen它,因为它有利于fopen_s我,但我发现很难理解如何实现它,并且它也缺乏资源.有没有解决这个问题的方法,因为它现在真的让我回头.非常感激,

插口

unw*_*ind 5

您的代码打开文件两次:

FILE *fp = fopen(strIn, "r");
if(fopen(strIn, "r") == NULL)  /* Second open, leaks FILE *! */
Run Code Online (Sandbox Code Playgroud)

这可能会导致错误,因为Windows可以挑剔允许多次打开文件.第二行应为:

if(fp == NULL)
Run Code Online (Sandbox Code Playgroud)