파일의 사용자 권한을 체크하기 위해서 사용하지만, 보통은 파일이 존재하는지를 간단히 체크하기 위해서 주로 사용된다. access 를 사용하지 않을경우 open(2) 등의 함수를 이용해야 하는데, 단지 파일의 존재유무만을 파악하기 위해서 open 을 사용하는것은 너무 번거롭기 때문이다.
#include <unistd.h> int access(const char *pathname, int mode);
acess 는 프로세스가 pathname 으로 지정된 파일에 대해서 읽기, 쓰기, 실행권한을 가지고 있는지 체크한다. 만약 pathname 파일이 심볼릭링크된 파일이라면 원본 파일을 체크한다.
mode 는 R_OK, W_OK, X_OK, F_OK 로 구성된다.
R_OK 는 읽기, W_OK 는 쓰기, X_OK 는 실행 여부를 체크하며 F_OK 는 파일의 존재유무를 체크한다.
권한이 성공적으로 체크되었다면, 0 그렇지 않았다면 -1 이 반환되며, 적당한 errno 값이 세팅된다.
요구된 접근이 파일에 의해 거절되거나, 경로명안의 어느 한 디렉토리에 의해 거절되었을경우
read-only 인 파일시스템에 의해서 쓰기권한이 거절되었을경우
경로명의 디렉토리가 없거나, 심볼릭 링크가 깨져있을때.
경로명이 장치파일을 참고하고, 일치하는 장치가 없을때.
경로명이 read-only 파일시스템을 참조하면서, 쓰기로 열려고 할때.
경로명이 접근할수 없는 주소강간을 가르킬때
모드가 적절하지 않을때
경로명이 너무 길때
경로명의 디렉토리로 접근가능하지만 존재하지 않거나 깨진 링크일때
경로명의 디렉토리가 존재하지 않을때
/usr/test/cat 파일이 존재하는지 확인할때
#include <unistd.h> #include <stdio.h> int main(int argc, char **argv) { if (access(argv[1], F_OK) != 0) perror("파일이 존재하지 않음 : "); else printf("파일 존재함\n"); }
Copyrights © - Joinc, All Rights Reserved. Inherited From - Yundream Rebranded By - Joonphil
1장. access(2)
파일의 사용자 권한을 체크하기 위해서 사용하지만, 보통은 파일이 존재하는지를 간단히 체크하기 위해서 주로 사용된다. access 를 사용하지 않을경우 open(2) 등의 함수를 이용해야 하는데, 단지 파일의 존재유무만을 파악하기 위해서 open 을 사용하는것은 너무 번거롭기 때문이다.
1.1절. 사용법
1.2절. 설명
acess 는 프로세스가 pathname 으로 지정된 파일에 대해서 읽기, 쓰기, 실행권한을 가지고 있는지 체크한다. 만약 pathname 파일이 심볼릭링크된 파일이라면 원본 파일을 체크한다.
mode 는 R_OK, W_OK, X_OK, F_OK 로 구성된다.
R_OK 는 읽기, W_OK 는 쓰기, X_OK 는 실행 여부를 체크하며 F_OK 는 파일의 존재유무를 체크한다.
1.3절. 반환값
권한이 성공적으로 체크되었다면, 0 그렇지 않았다면 -1 이 반환되며, 적당한 errno 값이 세팅된다.
1.4절. 에러
요구된 접근이 파일에 의해 거절되거나, 경로명안의 어느 한 디렉토리에 의해 거절되었을경우
read-only 인 파일시스템에 의해서 쓰기권한이 거절되었을경우
경로명의 디렉토리가 없거나, 심볼릭 링크가 깨져있을때.
경로명의 디렉토리가 없거나, 심볼릭 링크가 깨져있을때.
경로명이 장치파일을 참고하고, 일치하는 장치가 없을때.
경로명이 read-only 파일시스템을 참조하면서, 쓰기로 열려고 할때.
경로명이 read-only 파일시스템을 참조하면서, 쓰기로 열려고 할때.
경로명이 접근할수 없는 주소강간을 가르킬때
모드가 적절하지 않을때
경로명이 너무 길때
경로명의 디렉토리로 접근가능하지만 존재하지 않거나 깨진 링크일때
경로명의 디렉토리가 존재하지 않을때
1.5절. 예제
/usr/test/cat 파일이 존재하는지 확인할때
Recent Posts
Archive Posts
Tags