Manpages

이 름

access − 파 일 의 사 용 자 권 한 을 체 크 한 다 .

사 용 법

#include <unistd.h>

int access(const char *pathname, int mode);

설 명

access 는 프 로 세 스 가 파 일 에 읽 고 ,쓰 고 것 이 가 능 한 지 체 크 한 다 . 만 일 경 로 명 이 심 볼 릭 링 크 라 면 링 크 테 스 트 로 원 본 파 일 을 체 크 하 게 된 다 .

mode 는 하 나 이 상 의 R_OK , W_OK , X_OK and F_OK로 구 성 된 허 상 (mask) 이 다 .

R_OK, W_OK and X_OK 는 각 각 파 일 의 존 재 , 읽 기 , 쓰 기 , 실 행 권 한 체 크 를 요 구 한 다 . F_OK는 단 지 파 일 의 존 재 유 무 의 체 크 만 을 요 구 한 다 .

테 스 트 는 파 일 이 위 치 하 고 있 는 디 렉 토 리 의 권 한 에 의 존 하 고 , 디 렉 토 리 와 심 볼 릭 링 크 파 일 도 같 은 이 치 이 다 .

커 널 에 의 해 실 행 될 때 의 id보 다 는 프 로 세 스 의 실 제 UID나 GID를 체 크 하 게 된 다 . 이 것 은 set-UID프 로 그 램 실 행 을 허 락 하 기 위 함 이 다 .

파 일 타 입 이 나 내 용 이 아 닌 억 세 스 비 트 (access bits)만 을 체 트 한 다 . 그 러 므 로 , 만 일 디 렉 토 리 가 "쓰 기 가 능 "이 라 면 , 디 렉 토 리 안 에 파 일 을 생 성 할 수 있 지 만 , 디 렉 토 리 가 파 일 로 써 쓰 여 질 수 있 는 것 은 아 니 다 .

반 환 값

모 든 요 구 하 는 권 한 이 받 아 들 여 져 성 공 하 게 되 면 , 0이 반 환 된 다 . 적 어 도 하 나 이 상 이 거 절 되 거 나 에 러 가 나 면 -1이 반 환 되 고 , errno가 적 절 하 게 셋 팅 된 다 .

에 러

EACCES

요 구 한 접 근 이 파 일 에 의 해 거 절 되 거 나 경 로 명 안 의 어 느 한 디 렉 토 리 에 의 해 거 절 되 었 다 .

EROFS

쓰 기 권 한 이 read-only인 파 일 시 스 템 에 의 해 거 절 되 었 다 .

EFAULT

경 로 명 의 위 치 가 당 신 이 접 근 할 수 있 는 주 소 공 간 밖 에 있 다 .

EINVAL

모 드 가 적 절 하 지 않 다 .

ENAMETOOLONG

경 로 명 이 너 무 길 다 .

ENOENT

경 로 명 의 디 렉 토 리 구 성 이 접 근 가 능 하 지 만 존 재 하 지 않 거 나 깨 진 링 크 이 다 .

ENOTDIR

경 로 명 의 디 렉 토 리 가 실 제 디 렉 토 리 가 아 니 다 .

ENOMEM

커 널 메 모 리 가 부 족 하 다 .

ELOOP

너 무 많 은 심 볼 릭 링 크 가 경 로 명 안 에 존 재 한 다 .

EIO

I/O 에 러 .

RESTRICTIONS

access 는 요 구 한 접 근 타 입 (access types)의 호 출 이 실 패 하 면 , 다 른 타 입 이 성 공 한 다 하 더 라 도 에 러 를 반 환 한 다 .

access 는 UID 맵 핑 이 가 능 한 NFS파 일 시 스 템 에 서 작 동 하 지 않 을 수 있 다 . 왜 냐 하 면 UID맵 핑 은 사 용 자 가 볼 수 없 는 서 버 에 서 실 행 되 기 때 문 이 다 .

호 환

SVID, AT&T, POSIX, X/OPEN, BSD 4.3

관 련 항 목

stat(2), open(2), chmod(2), chown(2), setuid(2), setgid(2)

역 자

ASPLINUX<man [AT] asp-linux.kr>, 2000년 7월 29일