[리눅스 시스템 프로그래밍] 4. 파일의 상태

이번 장에서는 파일의 상태에 관해 알아봅시다.

 

리눅스(유닉스) 시스템에서는 파일의 상태를 stat 구조체로 정의하고 있습니다. 그리고 파일의 상태를 확인할 수 있는 여러 가지 시스템 호출을 제공합니다. ls 명령어는 파일의 상태를 확인하는 명령입니다.

 

리눅스 시스템에서는 파일의 상태를 구조체 stat으로 정의하고 있습니다.

 

구조체 stat에는 파일의 타입과 퍼미션, inode 번호와 장치 번호, 사용자 정보 및 파일 접근 시각과 블록 정보를 갖고 있습니다. 이러한 정보를 확인하고자 할 때 사용하는 시스템 호출에는 stat, fstat, lstat 등이 있습니다.

#include <sys/types.h >

#include <sys/stat.h>

int stat(const char *path, struct stat *buf);

int fstat(int fd, struct stat *buf);

int lstat(const char *path, struct stat *buf); – 심볼릭 링크일 때 링크 파일 자체 정보를 확인

반환 값: 성공 시 0, 실패 시 -1

 

[그림 4.1] ls -al 명령을 수행한 결과 화면
[그림 4.1] ls -al 명령을 수행한 결과 화면
 리눅스 명령어 중에 ls는 파일의 상태 정보를 확인할 때 사용하는 명령어입니다.

 

ls -al 명령 결과의 가장 앞부분 10자리는 파일 종류와 소유자의 권한(rwx), 소유 그룹의 권한, GUEST 권한입니다. 그리고 나오는 숫자는 링크 수를 의미합니다. 이어서 소유자와 소유자 그룹이 나옵니다. 다음의 수는 파일의 크기를 의미하며 이어서 마지막 수정 시각과 파일명이 나옵니다.

 

이번 장에서는 파일 상태를 확인하는 시스템 호출을 사용하는 방법에 관해 다룰 것입니다.