PHP fstat() 함수란?
PHP의 fstat() 함수는 fopen()으로 열어둔 파일에 대한 상세 정보를 배열 형태로 반환하는 함수입니다. 파일 크기, 접근 시간, 수정 시간 등 파일 시스템 수준의 다양한 메타데이터를 확인할 때 유용하게 사용됩니다.
fstat() 함수가 반환하는 배열에는 다음과 같은 요소들이 포함되어 있습니다.
- [0] 또는 [dev] – 장치 번호
- [1] 또는 [ino] – 아이노드(Inode) 번호
- [2] 또는 [mode] – 아이노드 보호 모드(권한)
- [3] 또는 [nlink] – 링크 수
- [4] 또는 [uid] – 소유자의 사용자 ID
- [5] 또는 [gid] – 소유자의 그룹 ID
- [6] 또는 [rdev] – 아이노드 장치 유형
- [7] 또는 [size] – 파일 크기(바이트 단위)
- [8] 또는 [atime] – 마지막 접근 시간(Unix 타임스탬프)
- [9] 또는 [mtime] – 마지막 수정 시간(Unix 타임스탬프)
- [10] 또는 [ctime] – 마지막 아이노드 변경 시간(Unix 타임스탬프)
- [11] 또는 [blksize] – 파일시스템 IO 블록 크기
- [12] 또는 [blocks] – 할당된 블록 수
각 정보는 숫자 인덱스와 문자열 키 두 가지 방식으로 동시에 제공되므로, 개발자에게 편리한 방식을 선택해 사용하면 됩니다.
문법(Syntax)
fstat(file_pointer)
매개변수(Parameters)
- file_pointer – fopen() 함수로 생성한 파일 포인터를 지정합니다. 이 매개변수는 필수입니다.
반환값(Return)
fstat() 함수는 위에서 설명한 요소들을 담고 있는 배열을 반환합니다. 만약 오류가 발생하면 false를 반환합니다.
사용 예제
<?php
$file_pointer = fopen("one.txt", "r");
print_r(fstat($file_pointer));
fclose($file_pointer);
?>
위 예제에서는 one.txt 파일을 읽기 모드로 연 후, fstat() 함수로 파일 정보를 출력하고 fclose()로 파일을 닫습니다.
실행 결과(Output)
Array
(
[0] => 0
[1] => 0
[2] => 33206
[3] => 1
[4] => 0
[5] => 0
[6] => 0
[7] => 120
[8] => 1928173529
[9] => 1124185875
[10] => 1114322653
[11] => -1
[12] => -1
[dev] => 0
[ino] => 0
[mode] => 33206
[nlink] => 1
[uid] => 0
[gid] => 0
[rdev] => 0
[size] => 120
[atime] => 1928173529
[mtime] => 1124185875
[ctime] => 1114322653
[blksize] => -1
[blocks] => -1
)
출력 결과를 보면 숫자 인덱스와 문자열 키가 각각 대응되어 동일한 값을 가지는 것을 확인할 수 있습니다. 예를 들어 [7]과 [size]는 모두 파일 크기를 나타내며, 여기서는 120바이트입니다. 참고로 Windows 환경에서는 blksize와 blocks 값이 지원되지 않아 -1로 표시됩니다.