쓰레드 환경에서 errno를 사용할 방법이 있나요?
글쓴이: superkkt / 작성시간: 수, 2006/09/20 - 4:13오후
멀티쓰레드 환경에서 작업을 하고 있습니다. 제가 만드는 함수는 성공시 0, 실패시 errno를 리턴하도록 만들고 있습니다.
그런데 select()를 사용할때 리턴값이 0보다 작거나 같고 errno가 EINTR일때 특정 작업을 해줘야 하는데 이걸 어떻게 처리를 해야될지 모르겠네요. select()에서 리턴하고 errno를 체크하기 전에 다른 쓰레드에서 실행된 함수가 errno를 덮어쓰는 경우가 발생할 가능성이 있을텐데요..
이런 경우에는 어떻게 해야하나요?
Forums:
-D_REENTRANT
컴파일할때 -D_REENTRANT(정확한 철자인지는...) 줘서 하면
errno가 전역변수가 아닌 매크로 상수로 한번 감싸진
thread-safe함수가 됩니다.
그 함수가 쓰레드별로 발생한 errno를 정확히 리턴하죠.
/***************************************
Being the one is just like being in love.
***************************************/
댓글 달기