리눅스에서 쓰레드를 생성하여 ID 값을 찍어볼때….

다음과 같이 마이너스 값이 나오는 경우가 있다.

사용자 삽입 이미지
 이와 같은 경우는 printf의 타입 값을 잘못 지정해서 생기는 현상이다.

 보통은 다음과 같이 입력했을 것이다.

(Language : c)
  1. pthread_t t_id;
  2.  
  3. state = pthread_create(&t_id, NULL, thread_function, NULL);
  4.  
  5. printf(“생성된 쓰레드의 ID : %d n, t_id);

 하지만 pthread_t 의 타입을 보면…
 
사용자 삽입 이미지
 즉…..%lu 로 지정해야 정상적인 값이 나온다.

(Language : c)
  1. pthread_t t_id;
  2.  
  3. state = pthread_create(&t_id, NULL, thread_function, NULL);
  4.  
  5. printf(“생성된 쓰레드의 ID : %lu n, t_id);

 정상적인 출력 값
 
사용자 삽입 이미지

Tags: , , ,

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.