#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
void *thread_function (void *arg);
char message [] = "Hello World";
int main ()
{
int res;
pthread_t a_thread;
void *thread_result;
res = pthread_create (&a_thread, NULL, thread_function, (void *)message);
if (res != 0) {
perror ("Thread creation failed");
exit (EXIT_FAILURE);
}
printf ("Waiting for thread to finish...\n");
res = pthread_join (a_thread, &thread_result);
if (res != 0) {
perror ("Thread join failed");
exit (EXIT_FAILURE);
}
printf ("Thread joined, it returen %s\n", (char *)thread_result);
printf ("Message is now %s\n", message);
exit (EXIT_SUCCESS);
}
void *thread_function (void *arg)
{
printf ("thread_function is running. Argument was %s\n", (char *)arg);
sleep (3);
strcpy (message, "Bye!");
pthread_exit ("Thank you for the CPU time");
}
gcc -D_REENTRANT -I/usr/include/nptl thread1.c -o thread1.exe -L/usr/lib/nptl -lpthread
beyes@linux-beyes:~/C/thread> gcc -D_REENTRANT thread1.c -o thread1.exe -lpthread
beyes@linux-beyes:~/C/thread> ./thread1.exe
Waiting for thread to finish...
thread_function is running. Argument was Hello World
Thread joined, it returen Thank you for the CPU time
Message is now Bye!
Waiting for thread to finish...
Thread joined, it returen U(乱码)
Message is now Hello World
欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) | Powered by Discuz! X3.2 |