access、_waccess
Io.h:インデックス への移動
ヘッダー ファイル
io.h
カテゴリ
入出力ルーチン
プロトタイプ
int access(const char *filename, int amode);
int _waccess(const wchar_t *filename, int amode);
説明
ファイルのアクセサビリティを判断します。
access は、filename で指定された名前のファイルが存在するかどうか、またそれが、読み、書き、実行ができるかどうかをチェックします。
amode 値のリストは次の通りです:
06 |
読み書きの権限をチェック |
04 |
読み込みの権限をチェック |
02 |
書き込みの権限をチェック |
01 |
実行(無視される) |
00 |
ファイルの存在をチェック |
既存ファイルにはすべて読み込み権限があるため(amode は 04)、00 および 04 は同じ結果となります。 同様に、06 および 02 の amode 値も同じになります。これは、Win32 下では、書き込み権限が読み込み権限も含むためです。
filename がディレクトリを参照している場合、access は単純にそのディレクトリが存在しているかどうかを判別します。
戻り値
要求されたアクセスが許可される場合、access は 0 を返します。そうでなければ、値 -1 を返し、グローバル変数 errno が、次のいずれかの値に設定されます:
ENOENT |
パスまたはファイル名が見つからない |
EACCES |
アクセスが拒否されました |
例
#include <stdio.h>
#include <io.h>
int file_exists(char *filename);
int main(void)
{
printf("Does NOTEXIST.FIL exist: %s\n",
file_exists("NOTEXISTS.FIL") ? "YES" : "NO");
return 0;
}
int file_exists(char *filename)
{
return (access(filename, 0) == 0);
}
移植性
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
アクセス |
+ |
+ |
||
_waccess |
NT のみ |