我一直在寻找一段时间来find这个答案,但我找不到解决scheme。 基本上我试图读取和写入我的电脑的C盘中的文件。 但是,因为它是Windows 7,它select在背面的痛苦,而不是给我的C程序的权限来做到这一点。 我试图以pipe理员模式运行它,并试图使用不同的目录。 当下面的代码运行时:
FILE *fp = fopen(strIn, "r"); if(fopen(strIn, "r") == NULL) { printf("Error: %d (%s)\n", errno, strerror(errno)); getchar(); }
返回的错误是“错误13权限被拒绝”。 我知道微软并不喜欢使用fopen
因为它支持fopen_s
但是我发现在理解如何实现它时遇到困难,而且它也缺乏资源。 有没有什么办法解决这个问题,因为现在真的把我弄回来了。 非常感激,
插口
您的代码打开文件两次:
FILE *fp = fopen(strIn, "r"); if(fopen(strIn, "r") == NULL) /* Second open, leaks FILE *! */
这可能会导致错误,因为Windows可能会挑剔允许多次打开文件。 第二行应为:
if(fp == NULL)