_access, _waccess

ファイルが読み取り専用かどうかを判断します。 セキュリティが強化されたバージョンがあります。「」 _access_s_waccess_s 参照してください。

構文

int _access(
   const char *path,
   int mode
);
int _waccess(
   const wchar_t *path,
   int mode
);

パラメーター

path
ファイルまたはディレクトリ パス。

mode
読み取り/書き込み属性。

戻り値

ファイルに特定のモードが設定されている場合、各関数は 0 を返します。 指定されたファイルが存在しない場合、または指定されたモードがない場合、この関数は-1 を返します。この場合、 errno は次の表に示すように設定されます。

[説明]
EACCES アクセス拒否: ファイルのアクセス許可の設定では、指定したアクセスは許可されません。
ENOENT ファイル名またはパスが見つかりません。
EINVAL 無効なパラメーター。

これらのリターンコードの詳細については、「」、「」、 _doserrno errno _sys_errlist および _sys_nerr 「」を参照してください。

Remarks

ファイルと共に使用する場合、関数は、 _access 指定されたファイルまたはディレクトリが存在し、の値によって指定された属性を持っているかどうかを判断し mode ます。 ディレクトリと共に使用する場合は、 _access 指定したディレクトリが存在するかどうかを判断します。 Windows 2000 以降のオペレーティングシステムでは、すべてのディレクトリに読み取りと書き込みのアクセス権が与えられます。

mode 数値 ファイル チェックの目的
00 存在のみ
02 書き込み専用
04 読み取り専用
06 読み取りと書き込み

この関数は、ファイルとディレクトリが読み取り専用かどうかだけを確認し、ファイルシステムのセキュリティ設定は確認しません。 そのためには、アクセス トークンが必要です。 ファイルシステムのセキュリティの詳細については、「アクセス トークン」を参照してください。 ATL クラスは、この機能を提供するために存在します。「 CAccessToken クラス」を参照してください。

_waccess はのワイド文字バージョンです _access 。の path 引数は _waccess ワイド文字列です。 _waccess****_access それ以外の場合は、との動作は同じです。

この関数は、パラメーターを検証します。 がである path NULL か、 mode 有効なモードが指定されていない場合は、「 パラメーターの検証」で説明されているように、無効なパラメーターハンドラーが呼び出されます。 実行の継続が許可された場合、この関数は errnoEINVAL に設定し、-1 を返します。

既定では、この関数のグローバル状態はアプリケーションにスコープが設定されています。 これを変更するには、「 CRT でのグローバル状態」を参照してください。

汎用テキスト ルーチンのマップ

Tchar.h ルーチン _UNICODE``_MBCS定義されていない _MBCS _UNICODE
_taccess _access _access _waccess

必要条件

ルーチンによって返される値 必須ヘッダー 省略可能なヘッダー
_access <io.h> <errno.h>
_waccess <wchar.h> または <io.h> <errno.h>

次の例では、を使用し _access て、という名前のファイルが crt_ACCESS.C 存在するかどうか、書き込みが許可されているかどうかを確認します。

// crt_access.c
// compile with: /W1
// This example uses _access to check the file named
// crt_ACCESS.C to see if it exists and if writing is allowed.

#include  <io.h>
#include  <stdio.h>
#include  <stdlib.h>

int main( void )
{
    // Check for existence.
    if( (_access( "crt_ACCESS.C", 0 )) != -1 )
    {
        printf_s( "File crt_ACCESS.C exists.\n" );

        // Check for write permission.
        // Assume file is read-only.
        if( (_access( "crt_ACCESS.C", 2 )) == -1 )
            printf_s( "File crt_ACCESS.C does not have write permission.\n" );
    }
}
File crt_ACCESS.C exists.
File crt_ACCESS.C does not have write permission.

関連項目

ファイルの処理
_chmod, _wchmod
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32
_open, _wopen
_stat_wstat 関数