2 진 파일을 열어 5MB의 '1'을 쓰는 C++ 코드를 작성해야합니다.특정 크기의 파일에 const 패턴을 작성하십시오.
현재 내 코드는 다음과 같습니다
#define BYTES_BUFFER_SIZE_5MB (1024*1024*5)
static char buffer[BYTES_BUFFER_SIZE_5MB];
memset(buffer, 0xff, BYTES_BUFFER_SIZE_5MB);
ofstream myFile ("data.bin", ios::out | ios::binary);
myFile.write(buffer, BYTES_BUFFER_SIZE_5MB);
파일에 기입하기위한 memset
-like 방법이 있나요, 그래서 버퍼 것을 방지 할 수 있습니까?
'1024 * 1024 * 5' = 16 진수 'int'라면 메리 지옥. 컴파일 타임으로 평가할 수있는 상수 표현에 대해서는 신중해야합니다. – Bathsheba
큰 버퍼를 사용하는 좋은 점은 시스템이 백그라운드에서 데이터 전송을 처리 할 수 있다는 것입니다. 예를 들어 드라이버는 DMA 프로세서를 사용하여 데이터를 하드 드라이브로 전송할 수 있습니다. CPU가 메모리를 읽거나, 장치에 데이터를 쓰거나, 반복해야하는 번거 로움을 덜어줍니다. –
각 트랜잭션에 오버 헤드가 있습니다. 최적의 솔루션은 트랜잭션 당 데이터 크기를 최대화하는 것입니다. 오버 헤드는 드라이브 회전, 드라이브 회전, 섹터 위치 지정 등일 수 있습니다. –