Egloos | Log-in


win32 ftell() 사용시 주의사항.

무슨 디버깅 삽질을 별 것 아닌걸로 아주 거하게 했는데.

win32에서는 fopen() (혹은 _fopen()) 사용시 append, binary 모드를 옵션으로 열고,
바로 ftell()를 찍으면 파일의 끝 포지션이 아니라 첫 포지션이 나오는 현장을 목격.

이건 뭥미 싶어서 대강 보니까, MSDN ftell() function (CRT)에 다음 구절이 적혀있다.
"If no I/O operation has yet occurred on a file opened for appending, the file position is the beginning of the file."

당연히 두번째 파일을 다시 열 때는 정상적으로 마지막 포지션이 나올 것이다.

따라서, win32에서는 열고 난 뒤 닥치고 fseek(fp, 0, SEEK_END)를 써서 끝 포지션으로 옮겨줄 것.

덕분에 포팅했던 녀석에서 거하게 삽질해주셨음.

by 달가락 | 2009/03/03 21:58 | 트랙백 | 덧글(2)

트랙백 주소 : http://dalgarak.egloos.com/tb/2168393
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by onion at 2009/03/25 14:38
고수.... 전 요즘와서 유래없는 호좁이 되어가고 있어요...(울먹)
Commented by 달가락 at 2009/03/27 11:00
- _-;;; 전 원래 유래없는 허접이라서 ㅋㅋ 괜찮아요. ㅋ

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶