파일을 저장하거나 또는, 파일의 중복을 확인하기 위해서 우리는 무엇인가 코딩을 해야 하는 경우가 있다. 

     

    일부는 open()을 이용하여 확인할 수 있지만, open()의 원래 용법은 그런거 하라고 만든게 아니므로 시스템에서 제공하는 함수를 통해서 구현하는게 유익하다 생각된다.

     

    출처 : embeddedclub.net

     

    1. 예제소스 (faccess_ex.c)

    // Embeddedclub.net Sample Code
    // Auth : embeddedclub.net
     
    #include <stdio.h>
    #include <unistd.h> // Requrement header for access
    #include <stdlib.h>
     
    int file_check(const char *file_name)
    {
     
        printf("File Name : %s / Attribute : ",file_name);
        if(access(file_name,F_OK))
            return -1;
     
        if(!access(file_name,R_OK))
            printf("R");
     
        if(!access(file_name,W_OK))
            printf("W");
     
        if(!access(file_name,X_OK))
            printf("X");
     
        printf("\n");
     
        return 0;
    }
     
    int main(int argc, char** argv)
    {
        if(argc!=2)
        {
            printf("Invalid arguments.\n");
            return -1;
        }
     
        if(file_check(argv[1])<0)
        {
            printf("%s file not found\n",argv[1]);
            return -1;
        }
     
        return 0;
    }

     

    2. 실행결과

      gcc를 이용해서 컴파일 하고 실행하면 다음과 같이 수행 되는 것을 확인할 수 있다.

     

      - 컴파일

    $ gcc -o faccess_ex faccess_ex.c

     

      - 실행결과

      ls를 하여 현재 디렉터리에 어떤 파일이 있는지 확인한다. 그리고 예제 실행하면서 해당 파일 이름을 넣어주자. 아래의 결과를 보면 파일 이름과 파일 속성에 출력되는 것을 확인할 수 있다. 

     

    # 파일 존재여부 확인하기... 끝.

    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기