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我,但我发现很难理解如何实现它,并且它也缺乏资源.有没有解决这个问题的方法,因为它现在真的让我回头.非常感激,
插口
您的代码打开文件两次:
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)