2015-12-21 86 views
1

我试图编译和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)); 

,你会看到消息

+1

首先使用例如['strerror'](http://en.cppreference.com/w/c/string/byte/strerror)得到一个可打印的错误字符串,这将使它更容易找出问题可能是什么。 –

+4

另外,从命令行运行时,您确定您具有当前目录的写入权限吗? –

+0

尝试更改访问权限以读取:'err = fopen_s(&file,“file.txt”,“r”);'如果您没有这样的错误,那么您似乎没有权限修改该文件。可以通过以管理员身份运行命令行来修复。 – mihai

回答

1

Permission denied它说,你不能打开该文件,当你试图做,写作。