파일을 저장하거나 또는, 파일의 중복을 확인하기 위해서 우리는 무엇인가 코딩을 해야 하는 경우가 있다.
일부는 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를 하여 현재 디렉터리에 어떤 파일이 있는지 확인한다. 그리고 예제 실행하면서 해당 파일 이름을 넣어주자. 아래의 결과를 보면 파일 이름과 파일 속성에 출력되는 것을 확인할 수 있다.
# 파일 존재여부 확인하기... 끝.
반응형
최근댓글