_access
、 _waccess
、 t_access
ファイルが読み取り専用かどうかを判断します。 セキュリティが強化されたバージョンを使用できるようになりました。「_access_s
、_waccess_s
」を参照してください。
_taccess
については、Generic-text 関数のマッピングを参照してください。
構文
int _access(
const char *path,
int mode
);
int _waccess(
const wchar_t *path,
int mode
);
パラメーター
path
ファイルまたはディレクトリ パス。
mode
読み取り/書き込み属性。
戻り値
ファイルに特定のモードが設定されている場合、各関数は 0 を返します。 名前付きファイルが存在しないか、指定されたモードがない場合、関数は -1 を返します。この場合、 errno
は次の表に示すように設定されます。
Value | 説明 |
---|---|
EACCES |
アクセスが拒否されました: ファイルのアクセス許可設定で、指定されたアクセスが許可されていません。 |
ENOENT |
ファイル名またはパスが見つかりません。 |
EINVAL |
無効なパラメーター。 |
これらのリターン コードとその他のリターン コードについては、「errno
、_doserrno
、_sys_errlist
、_sys_nerr
」を参照してください。
解説
ファイルを使用すると、_access
関数は、指定したファイルまたはディレクトリが存在し、mode
値で指定されている属性があるかどうかを判断します。 ディレクトリを使用すると、_access
は指定されたディレクトリが存在するかどうかだけを判断します。Windows 2000 以降のオペレーティング システムでは、すべてのディレクトリに読み取りおよび書き込みアクセスできます。
mode 値 |
ファイル チェックの目的 |
---|---|
00 | 存在のみ |
02 | 書き込み専用 |
04 | 読み取り専用 |
06 | 読み取りと書き込み |
この関数では、ファイルとディレクトリが読み取り専用かどうかのみがチェックされ、ファイル システムのセキュリティ設定は確認されません。 そのためには、アクセス トークンが必要です。 ファイルシステムのセキュリティの詳細については、「 Access トークン」を参照してください。 ATL クラスはこの機能を提供するために存在します。「CAccessToken
クラス」を参照してください。
_waccess
関数は、 _access
関数のワイド文字バージョンです。 path
関数の引数 _waccess
は、ワイド文字列です。 それ以外では、_waccess
と _access
の動作は同じです。
この関数は、パラメーターを検証します。 path
がNULL
の場合、または有効なモードmode
指定されていない場合は、「パラメーターの検証で説明されているように、無効なパラメーター ハンドラーが呼び出されます。 実行の継続が許可された場合、この関数は errno
を EINVAL
に設定し、-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
関数