본문 바로가기
Language/C언어

C047_access 함수 사용하기

by OdOp 관리자 2024. 1. 5.
SMALL

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 연산자)를 사용하면 됩니다. 

LIST

'Language > C언어' 카테고리의 다른 글

C049_fork 함수 사용하기  (2) 2024.01.07
C048_unlink 함수 사용하기  (0) 2024.01.06
C046_exit 함수 사용하기  (0) 2024.01.04
C045_perror함수 사용하기  (0) 2024.01.03
C044_malloc 사용하기  (0) 2024.01.02