PHP의 ftruncate
함수
ftruncate
함수는 파일 핸들의 크기를 지정한 크기로 변경하는 함수입니다. 주로 파일의 크기를 줄이거나 특정 크기로 잘라내는데 사용됩니다.
ftruncate
함수의 사용 예시:
$filename = 'data.txt';
$fileHandle = fopen($filename, 'r+');
if ($fileHandle) {
// 파일 크기를 100바이트로 줄임
ftruncate($fileHandle, 100);
fclose($fileHandle);
} else {
echo "Failed to open the file.";
}
위 예시는 파일 ‘data.txt’를 읽기/쓰기 모드로 열고, ftruncate
함수를 사용하여 파일 크기를 100바이트로 줄입니다.
다른 함수와 함께 사용하는 예시:
ftruncate
함수는 파일 핸들의 크기를 변경하는데 사용되므로, 파일을 읽기 또는 쓰기 전에 크기를 조정할 때 주로 다른 함수와 함께 사용됩니다. 예를 들어, 파일의 특정 부분만 남기고 나머지는 잘라내는 작업 등에 사용할 수 있습니다.
$filename = 'data.txt';
$fileHandle = fopen($filename, 'r+');
if ($fileHandle) {
// 파일 크기를 100바이트로 줄임
ftruncate($fileHandle, 100);
// 남은 데이터를 읽음
$remainingData = fread($fileHandle, filesize($filename));
echo "Remaining data: $remainingData";
fclose($fileHandle);
} else {
echo "Failed to open the file.";
}
위 예시는 파일 ‘data.txt’를 읽기/쓰기 모드로 열고, ftruncate
함수를 사용하여 파일 크기를 100바이트로 줄이고, 남은 데이터를 fread
함수를 사용하여 읽어 출력합니다.
조건문과 반복문과 함께 사용하는 예시:
ftruncate
함수는 주로 파일 핸들의 크기를 변경하는 용도로 사용되므로, 조건문과 반복문과 같은 제어 구조와 함께 자주 사용되지는 않습니다. 하지만 파일 크기를 조정하는 작업이 반복되어야 하는 상황에서는 반복문과 함께 사용될 수 있습니다.
$filename = 'data.txt';
$fileHandle = fopen($filename, 'r+');
if ($fileHandle) {
// 파일 크기를 100바이트로 줄이고, 파일의 크기를 출력
for ($i = 0; $i < 5; $i++) {
ftruncate($fileHandle, 100);
echo "File size after truncation: " . filesize($filename) . " bytes" . PHP_EOL;
}
fclose($fileHandle);
} else {
echo "Failed to open the file.";
}
위 예시는 파일 ‘data.txt’를 읽기/쓰기 모드로 열고, ftruncate
함수를 사용하여 파일 크기를 100바이트로 줄이고, 파일의 크기를 5번 출력합니다.
성능 향상을 위한 팁:
ftruncate
함수 자체에는 큰 성능상의 영향이 없습니다. 하지만 파일을 열고 닫는 작업은 파일 입출력에 비용이 많이 들 수 있으므로, 파일 핸들을 최대한 적게 사용하는 것이 좋습니다. 또한 크기를 변경할 때마다 파일의 내용을 즉시 기록하는 것이 아니라, 크기를 조정한 후에 필요한 시점에 파일을 다시 쓰는 방식으로 성능을 향상시킬 수 있습니다.