리눅스 상에서 다중 스래딩을 통해 O와 X를 화면에 도배하는 코드입니다.
/*** thread.c ***/
#include <pthread.h>
#include <stdio.h>
void *thread(void *unused)
{
while(1)
printf("X");
}
void main()
{
pthread_t tid;
pthread_create(&tid, NULL, &thread, NULL);
while(1)
printf("O");
}
이러한 소스코드인데 여기서 제가 궁금한 건
첫번째로 스레드를 생성하는 pthread_create함수 3번째 인자에 &thread가 들어가 있는데
main 함수 내에 thread라는 변수가 없는데도 저게 어떻게 컴파일이 되는지 모르겠네요.
그리고 두번째론 위의 thread함수는 void* 포인터를 반환하는 함수가 맞는지 궁금합니다.
(맨처음에 함수포인터인가 하고 찾아보니 함수포인터는 (*함수명) 이런식으로 작성한다구 해서 헷갈리네여;;;)