ここでは、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 系とは違い実行権限の確認を行うモードがありません。
- [ 参考 ] _access、_waccess
mode の値 | 内容 |
---|---|
00 | ファイルの存在確認のみ |
02 | 書き込み専用 |
04 | 読み取り専用 |
06 | 読み取りと書き込み権限の確認 |