[c] 파일 입출력 스트리밍

파일 입출력 스트리밍은 파일을 읽고 쓰는 동작을 스트리밍 형식으로 처리하는 방법을 말합니다. 이를 통해 대용량 파일을 처리하거나 네트워크를 통해 파일을 전송할 때 유용하게 사용될 수 있습니다.

파일 읽기 스트리밍

파일 읽기 스트리밍은 파일을 조각조각 읽어들여서 메모리 부담을 줄일 수 있습니다. 이를 통해 매우 큰 파일의 내용도 효율적으로 처리할 수 있습니다.

#include <stdio.h>

int main() {
    FILE *file = fopen("example.txt", "r");
    if (file) {
        char buffer[1024];
        size_t bytesRead;
        while ((bytesRead = fread(buffer, 1, sizeof(buffer), file)) > 0) {
            // buffer를 이용한 작업 수행
        }
        fclose(file);
    }
    return 0;
}

위 예제에서 fread 함수를 이용하여 파일을 조각조각 읽어들이고, 그 내용을 buffer에 저장한 후 원하는 작업을 수행할 수 있습니다.

파일 쓰기 스트리밍

마찬가지로 파일 쓰기 스트리밍을 통해 대용량의 데이터를 처리하면서 메모리를 효율적으로 관리할 수 있습니다.

#include <stdio.h>

int main() {
    FILE *file = fopen("output.txt", "w");
    if (file) {
        char buffer[1024];
        // buffer에 쓰여질 데이터를 준비
        size_t bytesWritten = fwrite(buffer, 1, sizeof(buffer), file);
        fclose(file);
    }
    return 0;
}

위의 예제에서 fwrite 함수를 이용하여 buffer에 있는 데이터를 파일에 쓰여집니다.

스트리밍을 통해 파일을 처리할 때에는 주의할 점이 있습니다. 버퍼의 크기를 적절하게 설정하고, 파일을 열고 닫는 과정에서 오류가 발생하지 않도록 안전하게 처리해야 합니다.

이러한 파일 입출력 스트리밍은 C 언어뿐만 아니라 다양한 프로그래밍 언어에서도 지원되는 개념이므로, 언어별 특징과 함께 활용하는 것이 중요합니다.

참고 자료