1
Windows 및 UNIX에서 실행되는 C++ 응용 프로그램 (콘솔)이 있습니다. 이 응용 프로그램은 출력 파일을 사용하여 시스템 호출/인쇄/etc의 자세한 로그 파일을 출력합니다. 새로운 특징이 추가 된 후에 시그널 11/2를 얻는 경우가 있습니다.시스템 충돌시에도 '거의 완료'로그 유지
이제 신호 11이 발생할 때 출력 파일이 제대로 닫히지 않기 때문에 로그 파일에서 '거의 완전한'정보를 얻지 않아도 버그/문제의 근원을 추적 할 수 없습니다. (부분적 또는 0 크기 일뿐입니다)
모든 fprintf 줄 인쇄 후에 flush 명령을 추가하는 것을 고려했습니다. Q :
- 실용적인 것으로 생각 되나요?
- fflush는 windows platfrom에서 잘 작동합니까?
- 시스템이 예기치 않게 중단 될 수있는 동안 로그 파일을 유지하기위한 다른 생각이나 다른 방법은 있습니까?
다른 언어로 나는 물건이 추락 할 수있을 때 플러시를하는 경향이 있습니다. 그러나 플러시는 상황을 느리게 만듭니다. 불안정한 지역에서만 사용하십시오. 또는 메시지를 마이크로 소프트 대기열 또는 안정적인 메모리 내 위치로 덤프 (속도 향상을 위해)하십시오. 물론 가장 좋은 점은 충돌을 파악하고 해결하는 것입니다. –