access() 파일 존재나 접근 권한을 확인합니다.
Language/C 2011. 12. 29. 08:52설명
access()는 프로세스가 지정한 파일이 존재하는지, 읽거나 쓰거나 실행이 가능한 지를 확인하는 함수입니다. 만일 지정한 파일이 심볼릭 링크라면 링크의 원본을 체크합니다.
access()의 첫 번째 인자는 파일이나 디렉토리의 전체 이름이며, 두 번째 인자는 체크할 내용을 지정하게 됩니다.
int access(const char *pathname, int mode);
mode 값에는 아래의 상수 값을 지정하여 사용할 수 있습니다.
mode | 의미 |
R_OK | 읽기가 가능? |
W_OK | 쓰기가 가능? |
X_OK | 실행이 가능? |
F_OK | 파일이 존재하는가? |
헤더 | unistd.h | |||||
형태 | int access(const char *pathname, int mode); | |||||
인수 |
| |||||
반환 |
|
예제
#include <stdio.h> #include <unistd.h> int main( void) { char *file_name = "./main.c"; if ( 0 == access( file_name, F_OK)) { printf( "%s 파일이 있습니다.\n", file_name); if ( 0 == access( file_name, R_OK ¦ W_OK)) { printf( "읽거나 쓰기가 가능합니다.\n"); } else { printf( "읽지 못하거나 내용을 변경할 수 없습니다.\n"); } } }
]$ ./a.out ./main.c 파일이 있습니다. 읽거나 쓰기가 가능합니다. ]$ chmod 444 main.c ]$ ./a.out ./main.c 파일이 있습니다. 읽지 못하거나 내용을 변경할 수 없습니다. ]$
'Language > C' 카테고리의 다른 글
패턴 매칭 ( Pattern Matching ) (0) | 2012.01.05 |
---|---|
C 정규식 (0) | 2012.01.05 |
void형 포인터 (0) | 2011.12.02 |
이중 포인터의 필요성 (0) | 2011.12.02 |
포인터 배열 (0) | 2011.12.01 |