Perchè non mi compila il seguente programma???
codice:
#include <unistd.h>
#include <stdio.h>
#include <pthread.h>
#include <string.h>
#define MAX_CHAR 1000
#define MAX_STRING 1000
int string_number=0;
char * string_array[MAX_STRING];
int status;
void * OrderThread(void * new_string)
{
int i,j;
//printf("Ordering thread active\n");
for (i=0 ; i < string_number; i++) {
if (strcmp(new_string,string_array[i]) <= 0) {
for (j=0; j<(string_number-i); j++) {
string_array[string_number - j] = string_array[string_number - j - 1];
}
break;
}
}
string_array[i] = new_string;
string_number++;
status = 0;
pthread_exit((void *)&status);
}
main ()
{
int i;
pthread_t tid;
char * old_buffer;
void * status;
char buffer[MAX_CHAR];
int notfirst = 0;
while(1) {
printf("Inserisci stringa: ");
scanf("%s", buffer);
if (strcmp(buffer, "quit") == 0) break;
old_buffer = strdup(buffer);
if (notfirst) pthread_join(tid, &status);
else notfirst = 1;
i=pthread_create(&tid, NULL, OrderThread, (void *)old_buffer);
if (i) {
printf("cannot create thread for error %d\n", i);
exit(-1);
}
}
pthread_join(tid, &status);
for (i=0; i< string_number; i++) printf("String %d: %s\n", i,string_array[i]);
exit(0);
}
Immagino che il problema sarà una cavolata ma non capisco perchè mi da l'undefined reference to pthread_join e pthread_create!! Sono ancora alle prime armi con C!!