c++ ostream insert
글쓴이: auditory / 작성시간: 월, 2009/02/09 - 11:15오전
바이너리 파일을 만드는데, 데이터가 생성되는 순서가
[1 3 5 2 4 6] 의 순서로 생성됩니다..
즉,
1블럭을 쓰고, 2블럭을 쓰고난다음에
다시 1블럭 뒤, 즉 2블럭 앞에 3블럭을 쓰고, 2블럭 뒤에 4블럭을 씁니다..
ofstream의 seekp, 를 써서 이동을 하면 insert를 하는게 아니라 overwrite를 하더군요..
이걸 insert 하게 할수는 없나요?
또는
전체 데이터 길이를 미리 알고 있으니깐,
먼저 zero 데이터로 전체 파일을 채운 다음에 overwrite하는방법을 생각해봤는데,
ofs.write( buf, tot_len)에서
zero buf를 미리 만들지 않고 전체 파일을 dummy로 채우는 방법이 있을까요?
buf길이가 좀 길어서요..
Forums:
전체 파일을 미리 생성하려면
C++ 의 stream 계열은 아니긴 한데...
POSIX 함수 중에서 chsize() 를 활용하시면 될 것 같습니다.
몇몇 컴파일러에서는 deprecated 되어서 약간 변형된 형태로 쓰더군요.
http://msdn.microsoft.com/en-us/library/ms235502(VS.80).aspx
댓글 달기