2

我一直在寻找一段时间才能找到这个答案,但我找不到解决方案。基本上,我正在尝试读取和写入计算机 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但我发现很难理解如何实现它,而且它也缺乏资源。有什么办法可以解决这个问题,因为它现在真的让我退缩了。非常感激,

杰克

4

1 回答 1

5

您的代码打开文件两次:

FILE *fp = fopen(strIn, "r");
if(fopen(strIn, "r") == NULL)  /* Second open, leaks FILE *! */

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

if(fp == NULL)
于 2012-07-06T08:46:44.893 回答