파일의 특정 영역을 0으로 초기화하는 가장 효율적인 방법이 뭘까요?

ktd2004의 이미지

다음과 같은 상황입니다.

unsigned char buf[count];
 
memset( buf, 0, count);
 
lseek( fd, pos, SEEK_SET);
 
write( fd, buf, count);

즉, 위와 같은 동작을 수행하는 다음과 같은 함수가 있을 때

int write_0_to_file( int pos, int count)
{
}

함수 내부에서 buf를 사용하지 않고,
파일의 특정 영역을 0으로 초기화할 수 있는 가장 효율적인 방법은 무엇일까요?

미리 답변 감사드립니다. :)

byung82의 이미지

mmap을 사용하셔서 memory map으로 하시기 바랍니다.

그러면 memset 으로 초기화도 가능합니다.