_access、_waccess_access, _waccess

ファイルが読み取り専用かどうかを判断します。Determines if a file is read-only or not. セキュリティを強化したバージョンを使用できます。「_access_s、_waccess_s」をご覧ください。More secure versions are available; see _access_s, _waccess_s.


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


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

読み取り/書き込み属性。Read/write attribute.

戻り値Return Value

ファイルに特定のモードが設定されている場合、各関数は 0 を返します。Each function returns 0 if the file has the given mode. 指定されたファイルが存在しない場合、または指定されたモードがない場合、この関数は-1 を返します。この場合、 errno は次の表に示すように設定されます。The function returns -1 if the named file does not exist or does not have the given mode; in this case, errno is set as shown in the following table.

Value 説明Description
EACCES アクセス拒否: ファイルのアクセス許可の設定では、指定したアクセスは許可されません。Access denied: the file's permission setting does not allow specified access.
ENOENT ファイル名またはパスが見つかりません。File name or path not found.
EINVAL 無効なパラメーター。Invalid parameter.

リターン コードの詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。For more information about these and other return codes, see _doserrno, errno, _sys_errlist, and _sys_nerr.


ファイルと共に使用する場合、 _access 関数は、指定されたファイルまたはディレクトリが存在し、 モード の値によって指定された属性を持っているかどうかを判断します。When used with files, the _access function determines whether the specified file or directory exists and has the attributes specified by the value of mode. ディレクトリと共に使用する場合、 _access は指定したディレクトリが存在するかどうかのみを判断します。Windows 2000 以降のオペレーティングシステムでは、すべてのディレクトリに読み取りと書き込みのアクセス権があります。When used with directories, _access determines only whether the specified directory exists; in Windows 2000 and later operating systems, all directories have read and write access.

モードmode value ファイル チェックの目的Checks file for
0000 存在のみExistence only
0202 書き込み専用Write-only
0404 読み取り専用Read-only
0606 読み取りと書き込みRead and write

この関数は、ファイルとディレクトリが読み取り専用かどうかだけを確認し、ファイルシステムのセキュリティ設定は確認しません。This function only checks whether the file and directory are read-only or not, it does not check the filesystem security settings. そのためには、アクセス トークンが必要です。For that you need an access token. ファイルシステムのセキュリティの詳細については、「アクセス トークン」を参照してください。For more information on filesystem security, see Access Tokens. ATL クラスはこの機能を提供するために存在します。「CAccessToken クラス」を参照してください。An ATL class exists to provide this functionality; see CAccessToken Class.

_waccess_access のワイド文字バージョンです。_waccessパス 引数は、ワイド文字列です。_waccess is a wide-character version of _access; the path argument to _waccess is a wide-character string. _waccess_access は同じように動作します。_waccess and _access behave identically otherwise.

この関数は、パラメーターを検証します。This function validates its parameters. Path が NULL であるか、モード で有効なモードが指定されていない場合は、「パラメーターの検証」で説明されているように、無効なパラメーターハンドラーが呼び出されます。If path is NULL or mode does not specify a valid mode, the invalid parameter handler is invoked, as described in Parameter Validation. 実行の継続が許可された場合、この関数は errnoEINVAL に設定し、-1 を返します。If execution is allowed to continue, the function sets errno to EINVAL and returns -1.

既定では、この関数のグローバル状態はアプリケーションにスコープが設定されています。By default, this function's global state is scoped to the application. これを変更するには、「 CRT でのグローバル状態」を参照してください。To change this, see Global state in the CRT.

汎用テキスト ルーチンのマップGeneric-Text Routine Mappings

Tchar.h のルーチンTchar.h routine _UNICODE および _MBCS が未定義の場合_UNICODE and _MBCS not defined _MBCS が定義されている場合_MBCS defined _UNICODE が定義されている場合_UNICODE defined
_taccess _access_access _access_access _waccess_waccess


ルーチンによって返される値Routine 必須ヘッダーRequired header 省略可能なヘッダーOptional headers
_access_access <io.h> <errno.h>
_waccess_waccess <wchar.h> または <io.h><wchar.h> or <io.h> <errno.h>


次の例では、 _access を使用して crt_ACCESS という名前のファイルをチェックします。C は、存在するかどうか、書き込みが許可されているかどうかを確認します。The following example uses _access to check the file named crt_ACCESS.C to see whether it exists and whether writing is allowed.

// 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.

関連項目See also

ファイルの処理File Handling
_chmod、_wchmod_chmod, _wchmod
_fstat、_fstat32、_fstat64、_fstati64、_fstat32i64、_fstat64i32_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32
_open、_wopen_open, _wopen
_stat、_wstat 関数_stat, _wstat Functions