fputs로 text를 기록하는데 프로그램완료 후 내용이 다 기록되지 않습니다.

drg2533의 이미지

printf랑 같이써서 프로그램을 돌려보니 정상작동합니다.

다만 printf로 직고나서 fputs로 text파일로 기록을 하는데

여기서 시간차가 발생하는지 프로그램종료후 text파일에 일부분까지만 기록이 됩니다.

중간에 오류때문에 프로그램이 정지해도 거기서 일정앞부분까지의 내용만 기록됩니다.

항상일정하게 기록이되더라구요

jic5760의 이미지

프로그램 종류 전에 fclose은 하셨나요?
그리고 바로 Write되게 하려면 fputs을 하시고 fflush을 해보세요

drg2533의 이미지

프로그램 종료전에 fclose는 했는데

fputs뒤에 fflush를 하니깐 해결되네요

근데 fflush는 버퍼를 지우는거로 아는데 왜 해결이된건가요??

jic5760의 이미지

그냥 버퍼를 지우는게 아니라 flush는 버퍼에 있는 데이터를 실질적으로 write한 뒤에 버퍼를 지우는 것입니다.
fclose가 제대로 안되고 프로그램이 종료되는 것으로 보입니다.