2016-06-20 14 views
2

ANSI Cで書かれたプログラムを使用して問題が発生しました 読み取りモードで0.datと呼ばれるファイル(fpというファイルポインタ)を開こうとすると、問題なくアクセスできます。それから、fclose fp。モードwまたはa +でfopenを使ってfpを再び開こうとすると、perrorを使って "permission denied"が返されます。 なぜ、私は最初にオープンしようとしましたが、それでも私にこのパーミッションエラーが出ます。ファイルを追加または書き込みモードで開くことができませんでした

Windows 10でVisual Studio 2015を実行しています。 Visual Studioをリセットしようとしましたが、それでも動作しませんでした。あなたのコードと書き込みオプションを指定して開きたいファイルへの書き込みの権利をチェック

#include <stdio.h> 

int main(void) { 
    FILE *fp = NULL; 
    if ((fp = fopen("1.txt", "w")) == NULL) { perror("error"); exit(1); } 
    fprintf(fp, "You smell"); 
    return 0; 
} 

Output: error: Permission denied.

+1

あなたの質問を編集し、[mcve]を提供してください。 – user694733

+0

私はちょうどそれをしました、ありがとう – absentio

答えて

1

: ここで、最小限の例です。 if ((fp = fopen("1.txt", "w")) == NULL) "1.txt"ファイルには書き込み権限が必要です。

1

このプログラムを実行するユーザーは、問題のファイルへの書き込みアクセス権を持っていないようです。

書き込みモードまたは追加モードでファイルを開くと、プログラムを実行しているユーザーは書き込みアクセス権を持っている必要があります。どちらか、あなたが直面している問題を回避

  • を取得したアクセス権
  • を調整したり、ファイルへの書き込みアクセスを許可されたユーザーの下でプログラムを実行するには

+0

こんにちは@alk、私のアカウントは管理者です私はWindowsの私の "ドキュメント"フォルダへの書き込みアクセスが必要であることを意味します。 – absentio

+0

@absentio:Windowsのファイルロックは特別です。おそらく別のプロセスが、既にそのファイルを書き込み専用に開いていますか? – alk

+0

私はそうは思わない。私がうまく覚えていれば、 "w"は存在しないファイルを作成すべきです。しかし、ここでは何も創造しません。たぶん私はUbuntuをインストールしてWindowsに別れを伝えるべきでしょうか? – absentio

関連する問題