的fopen \在C fopen_s编制,并通过命令行运行时
问题描述:
我试图编译和VS 2010的命令行运行一个简单的程序:的fopen 在C fopen_s编制,并通过命令行运行时
#include <stdio.h>
int main(){
FILE* file;
errno_t err;
err = fopen_s(&file,"file.txt", "w");
if(err != 0){
printf("FAIL error = %d \n", err);
return -1;
}
fclose(file);
return 0;
}
当我运行VS 2010这个代码,它但是当我尝试在命令提示符下编译并运行时,我得到了13的错误(在编译成功后)。 任何想法? 感谢
如果你使用类似printf("%s\n", strerror(13));
,你会看到消息
答
:Permission denied
它说,你不能打开该文件,当你试图做,写作。
首先使用例如['strerror'](http://en.cppreference.com/w/c/string/byte/strerror)得到一个可打印的错误字符串,这将使它更容易找出问题可能是什么。 –
另外,从命令行运行时,您确定您具有当前目录的写入权限吗? –
尝试更改访问权限以读取:'err = fopen_s(&file,“file.txt”,“r”);'如果您没有这样的错误,那么您似乎没有权限修改该文件。可以通过以管理员身份运行命令行来修复。 – mihai