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

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. 場合パス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.

汎用テキスト ルーチンのマップ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><io.h> <errno.h><errno.h>
_waccess_waccess <wchar.h> または <io.h><wchar.h> or <io.h> <errno.h><errno.h>


次の例では _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