_access_s
, , _waccess_s
_taccess_s
파일 읽기/쓰기 권한을 결정합니다. 이러한 함수는 _access
버전, CRT 보안 기능에 설명된 것 처럼 보안 기능이 향상된 _waccess
입니다.
자세한 내용은 _taccess_s
제네릭 텍스트 함수 매핑을 참조 하세요.
구문
errno_t _access_s(
const char *path,
int mode
);
errno_t _waccess_s(
const wchar_t *path,
int mode
);
매개 변수
path
파일 또는 디렉터리 경로입니다.
mode
권한 설정
반환 값
파일에 지정된 모드가 있으면 각 함수는 0을 반환합니다. 명명된 파일이 없거나 지정된 모드에서 액세스할 수 없는 경우 함수는 오류 코드를 반환합니다. 이 경우 함수는 다음과 같이 집합에서 오류 코드를 반환하고 errno
를 같은 값으로 설정합니다.
errno 값 |
조건 |
---|---|
EACCES |
액세스가 거부되었습니다. 파일의 권한 설정은 지정된 액세스를 허용하지 않습니다. |
ENOENT |
파일 이름 또는 경로를 찾을 수 없습니다. |
EINVAL |
잘못된 매개 변수입니다. |
자세한 내용은 다음을 참조하세요.errno
, _doserrno
, _sys_errlist
및 _sys_nerr
.
설명
파일과 함께 사용할 경우 _access_s
함수는 지정된 파일이 있는지, mode
의 값으로 지정한 대로 액세스할 수 있는지를 확인합니다. 디렉터리와 함께 사용할 경우 _access_s
는 지정한 디렉터리가 있는지만 확인합니다. Windows 2000 이상 운영 체제에서는 모든 디렉터리에 읽기 및 쓰기 권한이 있습니다.
mode 값 |
파일 검사 |
---|---|
00 | 존재만. |
02 | 쓰기 권한. |
04 | 읽기 권한. |
06 | 읽기 및 쓰기 권한. |
파일을 읽거나 쓸 수 있는 권한만으로는 파일을 열 수 없습니다. 예를 들어 파일이 다른 프로세스에 의해 잠겨 있으면 _access_s
에서 0을 반환해도 해당 파일에 액세스하지 못할 수 있습니다.
_waccess_s
는 _access_s
의 와이드 문자 버전이며, _waccess_s
에 대한 path
인수는 와이드 문자열입니다. 그렇지 않으면 _waccess_s
과 _access_s
은 동일하게 작동합니다.
이러한 함수는 해당 함수 매개 변수의 유효성을 검사합니다. path
유효한 모드이거나 mode
NULL
지정하지 않으면 매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 계속해서 실행하도록 허용된 경우 이러한 함수는 errno
를 EINVAL
로 설정하고 EINVAL
을 반환합니다.
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.
일반 텍스트 함수 매핑
열의 tchar.h
함수는 컴파일 시간에 정의된 문자 집합에 따라 다른 열의 함수에 매핑됩니다.
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> |
예시
이 예제에서는 _access_s
를 사용하여 crt_access_s.c라는 파일이 있는지, 쓰기가 허용되는지를 확인합니다.
// 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" );
}
}
File crt_access_s.c exists.
File crt_access_s.c does not have write permission.
참고 항목
파일 처리
_access
, _waccess
_chmod
, _wchmod
_fstat
, _fstat32
, _fstat64
, _fstati64
, _fstat32i64
_fstat64i32
_open
, _wopen
_stat
, _wstat
함수