2014-04-25 7 views
2

멀티 스레드 응용 프로그램을 작성 중이며 다음에 대해 궁금합니다. -D_REENTRANT 매크로를 사용할 때 접미사가 붙은 함수 _r을 명시 적으로 사용해야합니까?`-D_REENTRANT`를 사용할 때 명시 적으로`_r` 접미어를 사용해야합니까?

예컨대 코드에서 strtok_r을 사용하거나 strtok을 사용하고 -D_REENTRANT 매크로를 컴파일러에 전달할 수 있습니까?

덕분에 많은 strtok()의 의미를 변경하지 않습니다 _REENTRANT 정의

+0

관련 : http://stackoverflow.com/questions/875789/gcc-do-i-need-d-reentrant-with-pthreads –

답변

5

. strtok_r()을 사용해야합니다.

+0

또한'-D_REENTRANT'는 모든 최신 시스템에서 아무런 작동도하지 않습니다. –

+0

답장을 보내 주셔서 감사합니다. @R .. 조금 더 설명해 주시겠습니까? –

+1

glibc 기반 시스템에서'features.h'를 검사하면'_REENTRANT'가'__USE_REENTRANT'를 정의합니다. 그러나'__USE_REENTRANT'가 유일하게 검사되는 유일한 곳은'unistd.h'의'getlogin_r'을위한 곳이며'__USE_POSIX199506'이 정의되어 있다면 기본 기능 프로필에 정의되어 있습니다. –