[ C言語 ] ファイルのアクセス権限を調べる ( access 関数 )

Pocket

ここでは、C言語でファイルのアクセス権限を調べる access 関数のリファレンスを掲載しています。ファイルのアクセス権限の確認で、ファイルの存在確認、読み取り権限、書き込み権限、および実行権限の確認を行うことができます。

スポンサーリンク

ファイルのアクセス権限を調べる access 関数の I/F

#include <unistd.h>
 
int access (const char *filepath, int mode);
    

サンプルコード

ファイルの存在、読み取り権限、実行権限の確認を行う簡単なサンプルコードになります。サンプル内のコメントも参照ください。

//#define FILE_PATH "/path/to/file.txt"
 
    // ファイルが存在し、読み込み権限および実行権限があるかを確認
    // 権限の確認がすべてOKに場合には、0 がリターンされる
    // 権限がない、またはその他のエラーの場合は -1 がリターンされる
    if (access (FILE_PATH, (R_OK | X_OK)))
    {
        // ファイルが存在しない、読み取り権限がない、実行権限がない、
        // またはその他のエラー
        perror ("access");
    }

mode の設定値

access 関数の第2パラメータには、以下の値の論理和で設定することができます。

モード 内容
R_OK ファイルの存在確認と読み出し権限の有無を確認
W_OK ファイルの存在確認と書込み権限の有無を確認
X_OK ファイルの存在確認と実行権限の有無を確認
F_OK ファイルの存在確認のみ

Windows のモード値

Windows の場合は、_access 関数を使用します。また、Unix 系とは違い実行権限の確認を行うモードがありません。

mode の値 内容
00 ファイルの存在確認のみ
02 書き込み専用
04 読み取り専用
06 読み取りと書き込み権限の確認
スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *