pthread로 생성된 함수를 백그라운드로 돌리고 싶어요
안녕하세요 아래 코드의 t_function( )을 백그라운드로 돌리고 싶습니다.
즉, 아래 코드 컴파일 후 실행코드를 수행 후 엔터치면 리눅스프롬프트가 떨어져서
다른 작업을 할 수 있게요.
하지만 백그라운드로는 t_function이 계속 수행되게요.
현재는 ctrl+c 를 하기 전까지는 t_function이 포그라운드로 계속 수행됩니다.
제발 도와주세요
#include
#include
#include
#include
void *t_function(void *data)
{
int id;
int i = 0;
id = *((int *)data);
while(1)
{
i++;
if(i==100)
return (void *)i;
sleep(1);
}
}
int main(void)
{
pthread_t p_thread[2]; //thread ID 저장할 변수 2개
int thr_id; //thread generation error check
int status; //thread 종료시 반환하는 값 저장 변수
int a = 1; //쓰레드 함수 인자
int b = 2; //쓰레드 함수 인자
thr_id = pthread_create(&p_thread[0], NULL, t_function, (void *)&a);
if(thr_id < 0)
{
perror("thread create error : ");
exit(0);
}
pthread_join(p_thread[0], (void **)&status);
printf("return thread 0 %d\n", status);
pthread_join(p_thread[1], (void **)&status);
printf("return thread 1 %d\n", status);
return 0;
}
댓글 달기