Language/C언어
C047_access 함수 사용하기
OdOp 관리자
2024. 1. 5. 10:00
반응형
access함수는 파일이 존재하는지 어떤 권한이 있는지 판단하는 함수입니다.
access
#include <unistd.h>
int access(const char *path, int mode);
path가 파일의 위치를 나타내고, mode가 파일의 어떤 점을 확인할 것인지 확인하는 것입니다.
path에 입력된 파일이 mode에 입력된 조건에 충족을 한다면 0을 리턴 그렇지 않다면 -1을 리턴합니다.
예시를 한번 들어보도록 하겠습니다.
'exist'파일이 존재하는지 하지 않는지 확인하도록 하겠습니다.
#include <stdio.h>
#include <unistd.h>
int main(void)
{
if (access("./exist", F_OK) == 0)
printf("exist file is exist.\n");
else
printf("exist file is not exist.\n");
if (access("./unexist", F_OK) == 0)
printf("unexist file is exist.\n");
else
printf("unexist file is not exist.\n");
}
출력값을 살펴보겠습니다.
exist file is exist.
unexist file is not exist.
존재하는 파일 exist는 access함수가 0을 리턴하고,
존재하지 않는 파일 unexist는 access함수가 -1을 리턴합니다.
그 외에 mode인자에 사용할 수 있는 값들을 알아보도록 하겠습니다.
F_OK : 0 (파일의 존재 여부를 확인함)
X_OK : 1<<0 (파일의 실행 권한이 있는지 확인함)
W_OK : 1<<1 (파일의 쓰기 권한이 있는지 확인함)
R_OK : 1<<2 (파일의 읽기 권한이 있는지 확인함)
위의 경우를 여러 개 사용하고 싶다면 '|'(or 연산자)를 사용하면 됩니다.
반응형