Creative Code

05_THREAD2.c 본문

Raspberry PI(C)

05_THREAD2.c

빛하루 2023. 10. 6. 13:00
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include <unistd.h>

void* thread_main(void *arg);

int main(int argc, char *argv[]) 
{
	pthread_t t_id;
	int thread_param=5;
	void * thr_ret;
	
	if(pthread_create(&t_id, NULL, thread_main, (void*)&thread_param)!=0)
	{
		puts("pthread_create() error");
		return -1;
	}; 	

	if(pthread_join(t_id, &thr_ret)!=0)
	{
		puts("pthread_join() error");
		return -1;
	};

	printf("Thread return message: %s \n", (char*)thr_ret);
    printf("%c\n",thr_ret);
	free(thr_ret);
	return 0;
}

void* thread_main(void *arg) 
{
	int i;
	int cnt=*((int*)arg);
	//char * msg=(char *)malloc(sizeof(char)*50);
    char msg[50];
	strcpy(msg, "Hello, I'am thread~ \n");

	for(i=0; i<cnt; i++)
	{
		sleep(1);  puts("running thread");	 
	}
	return (void*)msg;
}

'Raspberry PI(C)' 카테고리의 다른 글

06_THREAD3.c  (0) 2023.10.06
04_THREAD1.c  (0) 2023.10.06
03_THREAD.c  (0) 2023.10.06
02_SWITCH_LED_INTERRUPT.c  (0) 2023.10.06
01_LED_ON_OFF.c  (0) 2023.10.06