출력을 잡아먹는 경우가 생기네요...
글쓴이: MythRab / 작성시간: 화, 2003/12/16 - 10:58오전
thread 몇 개가 disk의 정보를 읽는 프로그램입니다.
thread들 끼리 충돌을 하는지 가끔 segmentation fault가 나네요.
debugging을 해서 고쳐야 겠지만 제가 궁금한 것은...
segmentation fault가 나기전에 있는 printf(정확히 말하자면 printf를 사용하여 Macro로 만든 Debugprint)의 출력을 잘라 먹네요.
예를 들면 DebugPrint(4("this is error!!\n")); 이라면
...
s error!!
Segmentation fault
이렇게 출력해버립니다.
여러번 해보면 매번 같은 크기로 잘라 먹지는 않네요.
어떤 경우에 출력을 잘라먹을 수가 있는거죠. 제가 아는 바로는 감당이 안되네요...
참고로 stdout 출력입니다.
Forums:
printf 를 사용할때,fflush(stdout)등을 같이 사용해
printf 를 사용할때,
fflush(stdout)등을 같이 사용해 보시죠.
printf등은 버퍼링을 하기때문에, 바로 출력되지 않을수도 있습니다.
확실하진 않은데,stderr로 내보내시면 바로 나오지 않을까 싶습
확실하진 않은데,
stderr로 내보내시면 바로 나오지 않을까 싶습니다.
혹시 -D_REENTRANT 등 멀티스레드 쪽 지시어를 주지 않으신 것은
혹시 -D_REENTRANT 등 멀티스레드 쪽 지시어를 주지 않으신 것은 아닌가요?
댓글 달기