_access_s、_waccess_s

ファイルの読み取り / 書き込みアクセス許可を確認します。この関数は、「CRT のセキュリティ機能」に説明されているように、_access、_waccess のセキュリティが強化されたバージョンです。

errno_t _access_s( 
   const char *path, 
   int mode 
);
errno_t _waccess_s( 
   const wchar_t *path, 
   int mode 
);

パラメーター

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

  • mode
    アクセス許可の設定。

戻り値

ファイルに指定されたモードがの場合0 が返されます。ファイル名が特定のモードでアクセス可能であることなく関数の戻り値はエラー コードを返します。この場合関数の戻り値は次のとおりまたは同じ値に設定 errno のエラー コードを設定します。

  • EACCES
    アクセスの拒否。ファイルのアクセス許可の設定は指定されたアクセスできません。

  • ENOENT
    見つかったファイル名またはパス。

  • EINVAL
    無効なパラメーター。

詳細については、「errno、_doserrno、_sys_errlist、および _sys_nerr」を参照してください。

解説

ファイルで使用する場合は**_access_s** の関数は指定されたファイルをmode の値で指定されたようにアクセスできるかどうかを判定します。ディレクトリを使用すると**_access_s** は指定したディレクトリが存在するかどうかを決定します。Windows 2000  以降のオペレーティング システムではすべてのディレクトリが読み取りおよび書き込みアクセス。

モードの値

チェックはファイルです。

00

プロシージャだけです。

02

書き込みアクセス許可。

04

読み取りアクセス許可。

06

アクセス許可と書き込み。

ファイルの読み取りまたは書き込みのアクセス許可はファイルを開くには機能を確認するだけでは不十分です。たとえばファイルが別のプロセスによってロックされている場合は 0 を返します _access_s がアクセスできないことがあります。

_waccess_s_waccess_s への path の引数はワイド文字列の _access_s のワイド文字バージョンです。それ以外では、_waccess_s_access_s の動作は同じです。

これらの関数では、パラメーターの検証が行われます。path が NULL の場合またはが有効 mode モードを指定しない場合無効なパラメーター ハンドラーが パラメーターの検証 に説明されているように開始されます。実行の継続が許可された場合、これらの関数は errno を EINVAL に設定し、EINVAL を返します。

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

Tchar.h のルーチン

_UNICODE および _MBCS が未定義の場合

_MBCS が定義されている場合

_UNICODE が定義されている場合

_taccess_s

_access_s

_access_s

_waccess_s

必要条件

ルーチン

必須ヘッダー

オプション ヘッダー

_access_s

<io.h>

<errno.h>

_waccess_s

<wchar.h> または <io.h>

<errno.h>

使用例

この例ではという名前の crt_access_s.c あるかどうかおよび書き込みを許可するかどうかを確認するにはファイル _access_s を使用します。

// crt_access_s.c

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

int main( void )
{
    errno_t err = 0;

    // Check for existence. 
    if ((err = _access_s( "crt_access_s.c", 0 )) == 0 )
    {
        printf_s( "File crt_access_s.c exists.\n" );

        // Check for write permission. 
        if ((err = _access_s( "crt_access_s.c", 2 )) == 0 )
        {
            printf_s( "File crt_access_s.c does have "
                      "write permission.\n" );
        }
        else
        {
            printf_s( "File crt_access_s.c does not have "
                      "write permission.\n" );
        }
    }
    else
    {
        printf_s( "File crt_access_s.c does not exist.\n" );
    }
}
  
  

同等の .NET Framework 関数

System.IO.FileAccess

参照

関連項目

ファイル処理

_access、_waccess

_chmod、_wchmod

_fstat、_fstat32、_fstat64、_fstati64、_fstat32i64、_fstat64i32

_open、_wopen

_stat、_wstat 関数