[c언어] 읽기-쓰기 최적화 기술
C언어는 메모리에 직접 접근할 수 있는 강력한 언어로, I/O 작업을 최적화하는 것이 중요합니다. 이 블로그 포스트에서는 C언어에서 읽기와 쓰기 작업을 최적화하는 기술을 살펴보겠습니다.
목차
파일 읽기 최적화
C언어에서 파일을 읽을 때, 한 번에 많은 양을 읽도록 하는 것이 중요합니다. 이를 위해 fread
함수를 사용하여 많은 양의 데이터를 한 번에 읽어들일 수 있습니다. 또한, 파일을 바이너리 모드로 열어서 텍스트 모드보다 빠르게 읽을 수 있습니다.
FILE *file = fopen("input.bin", "rb");
if (file) {
char buffer[4096];
size_t bytesRead = fread(buffer, 1, sizeof(buffer), file);
fclose(file);
}
파일 쓰기 최적화
파일을 쓸 때도 비슷한 최적화 기술을 적용할 수 있습니다. fwrite
함수를 사용하여 많은 양의 데이터를 한 번에 쓸 수 있으며, 파일을 바이너리 모드로 열어서 텍스트 모드보다 더 빠르게 쓸 수 있습니다.
FILE *file = fopen("output.bin", "wb");
if (file) {
char buffer[4096];
// fill buffer with data
size_t bytesWritten = fwrite(buffer, 1, sizeof(buffer), file);
fclose(file);
}
버퍼링 기술
데이터를 읽거나 쓸 때 버퍼링을 이용하면 I/O 성능을 향상시킬 수 있습니다. setvbuf
함수를 사용하여 적절한 버퍼 크기를 설정하거나, 표준 입출력의 버퍼를 끝내기 전에 비우는 fflush
함수를 사용하여 성능을 최적화할 수 있습니다.
FILE *file = fopen("data.txt", "w");
if (file) {
char buffer[4096];
setvbuf(file, buffer, _IOFBF, sizeof(buffer));
// write data to file
fflush(file);
fclose(file);
}
C언어에서 파일 읽기와 쓰기 작업을 최적화하는 기술을 활용하면 프로그램의 성능을 향상시킬 수 있습니다. 위에서 소개한 기술들을 적용하여 효율적인 I/O 작업을 수행해보세요.
참고 자료
- “The C Programming Language” - Brian W. Kernighan, Dennis M. Ritchie
- “C Programming: A Modern Approach” - K.N. King