2015-12-21 87 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它說,你不能打開該文件,當你試圖做,寫作。