|
파일 정보를 저장하는 구조체
struct stat 구조체를 살펴 보면 다음과 같다.
struct stat {
dev_t st_dev; /*ID of device containing file */
ino_t st_ino; /*inode number*/
mode_t st_mode; /*protection*/
nlink_t st_nlink; /*number of hard links*/
uid_t st_uid; /*user ID of owner*/
gid_t st_gid; /*group ID of owner*/
dev_t st_rdev; /*device ID (if special file)*/
off_t st_size; /*total size, in byte*/
blksize_t st_blksize; /*blocksize for file system I/O*/
blkcnt_t st_blocks; /*number of 512B blocks allocated*/
time_t; st_atime; /*time of last access*/
time_t; st_mtime; /*time of last modification*/
time_t st_xtime; /*time of last status change*/
};
파일 정보를 담는 stat구조체에서 각 필드들은 각각 의미가 있다.
st_dev - 장치 파일의 위치 및 여부를 기술
st_ino - 파일의 inode 번호
st_mode - 파일의 모드를 다룸
st_nlink - 파일의 하드링크 수
st_uid - user ID
st_gid - group ID
st_rdev - 장치 파일 (inode)를 기술
st_size - 파일의 사이즈
st_blksiez - 효율적인 I/O 파일 시스템 위한 블럭 사이즈
st_blocks - 파일에 할당한 블럭의 수
stat 구조체에서 각 필드들 주목할 만한 부분은 바로 3번째 필드인 st_mode이다.
st_mode에 따라서 파일의 종류를 알 수 있고, 파일의 퍼미션(permission)도 알 수 있다.
st_mode로 파일 종류를 알 수 있는데, 위의 매크로로 설정 되어 있는 (m)부분에 st_mode 값를 넣어 주기만 하면 된다.
아래 예를 들자면,
이런 형식으로 파일 종류를 알 수 있다.
매크로를 통해 알 수 있는 방법과, 비트 연산 ( |, & )을 통해 파일 종류 및 퍼미션 등을 알 수 있다.
예를 보면,
st_mode와 간단한 비트 연산을 통해서 파일에 대한 정보들을 알 수 있다.
상세한 정보는
#man stat 명령어 시 확인 할 수 있다.
'IT > C 언어' 카테고리의 다른 글
IPC, 공유메모리 생성 함수 shmget() (0) | 2013.06.02 |
---|---|
IPC, 메세지 큐 생성 msgget() 함수 (0) | 2013.05.19 |
C언어 - 파일 정보 읽기 함수 stat() ,lstat() ,fstat(); (0) | 2013.05.05 |
C언어 - 디렉토리 읽기 함수 readdir(); (0) | 2013.04.28 |
C언어 - 디렉토리 오픈 함수 opendir(); (0) | 2013.04.27 |