Reputation: 29
So I am new to system programming and learning threads.What does the term posix means? I need help in understanding the following code.
#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>
void *print_message_function( void *ptr );
main()
{
pthread_t thread1, thread2;
const char *message1 = "Thread 1";
const char *message2 = "Thread 2";
int iret1, iret2;
iret1 = pthread_create( &thread1, NULL, print_message_function, (void*) message1);
iret2 = pthread_create( &thread2, NULL, print_message_function, (void*) message2);
pthread_join( thread1, NULL);
pthread_join( thread2, NULL);
printf("Thread 1 returns: %d\n",iret1);
printf("Thread 2 returns: %d\n",iret2);
exit(0);
}
void *print_message_function( void *ptr )
{
char *message;
message = (char *) ptr;
printf("%s \n", message);
}
I dont understand the line: pthread_join( thread1, NULL); and the function: void *print_message_function( void *ptr ).
Also, what does the variable iret returns?
Upvotes: 0
Views: 452
Reputation: 6642
You should read posix documentation.
I dont understand the line: pthread_join( thread1, NULL); and the function: void *print_message_function( void *ptr ).
pthread_join
blocks until the thread terminatesvoid *print_message_function( void *ptr )
is a function returning void*
and receiving a void*
as parameterAgain, you should read posix documentation (and learn more C).
Upvotes: 1
Reputation: 680
It spawns two threads.
Saves their "return values" to variables previously declared.
Joins to threads, basically waits for them to stop.
Prints the variables
posix is a general standard for Unix like operating systems. E.g file structure etc
Upvotes: 1