2011-09-29 123 views
-3

每當我使用open我得到權限被拒絕的錯誤。但是,當我使用fopen它打開文件罰款。我的代碼有什麼問題?打開失敗,fopen不

mode_t mode = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH; 
char *filename = "dataread.txt"; 

rec = open(filename ,O_WRONLY | O_CREAT | O_TRUNC,mode); 
if(rec == -1) 
{ 
    perror("\nopen error 1:"); 
    exit(1); 
} 

錯誤:

open error 1:: Permission denied

隨着fopen我沒有得到這個錯誤。

+1

'filename'應該是一個'const char *',順便說一下。 –

+3

你打電話給'fopen'怎麼樣?我刪除了C++標籤,因爲我沒有看到任何C++。 – user7116

+0

顯示你的fopen代碼 – KevinDTimm

回答

1

我添加了一個int rec=0; var聲明和必要的包含文件,然後編譯你的代碼。 它作爲我的Fedora 15筆記本電腦中的普通用戶無任何錯誤地運行。檢查你正在運行的目錄/文件權限,這些問題似乎沒有在代碼中。