_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 |
읽기 및 쓰기 권한입니다. |
읽거나 파일에 쓸 수 있는 권한이 있는 파일을 열기에는 충분하지 않습니다. 예를 들어, 파일이 다른 프로세스에 의해 잠겨 있으면, 액세스할 수 없습니다 _access_s 0을 반환 합니다.
_waccess_s는 _access_s의 와이드 문자 버전이며, _waccess_s의 path 인수는 와이드 문자 문자열입니다. 그렇지 않으면 _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 |
<whcar.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" );
}
}
해당 .NET Framework 항목
참고 항목
참조
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32