[php]ftruncate

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 함수 자체에는 큰 성능상의 영향이 없습니다. 하지만 파일을 열고 닫는 작업은 파일 입출력에 비용이 많이 들 수 있으므로, 파일 핸들을 최대한 적게 사용하는 것이 좋습니다. 또한 크기를 변경할 때마다 파일의 내용을 즉시 기록하는 것이 아니라, 크기를 조정한 후에 필요한 시점에 파일을 다시 쓰는 방식으로 성능을 향상시킬 수 있습니다.


게시됨

카테고리

,

작성자