/***********************************************************************\
   exemple_join
 
   Programme d'exemple du livre "Developpement systeme en C sous Linux"
   
   (c) 2000,2005 - Christophe Blaess
 //modif dupont
\***********************************************************************/
#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <pthread.h>
	#define _XOPEN_SOURCE 500
	#include <pthread.h>
	#include <stdio.h>
	#include <stdlib.h>
	#include <stdio.h>
	#include <string.h>
	#include <unistd.h>


	void *
fn_thread (void * inutile)
{
	char chaine[128];
	int	i = 0;
	
	fprintf(stdout, "Thread : entrez un nombre :");
	while (fgets(chaine, 128, stdin) != NULL)
		if (sscanf(chaine, "%d", & i) != 1)
			fprintf(stdout, "un nombre svp :");
		else
			break;
	sleep(100);
	pthread_exit((void *) i);
}

	int
main (void)
{
	int       i;
	int       ret;
	pthread_t thread;
// noter la bonne façon de déclarer le retour
	void *    retour;

	if ((ret = pthread_create(& thread, NULL, fn_thread, NULL)) != 0) {
		fprintf(stderr, "%s\n", strerror(ret));
		exit(EXIT_FAILURE);
	}
// on passe bien **retour
	pthread_join(thread , & retour);
	if (retour!= PTHREAD_CANCELED) {
		i = (int) retour;
		fprintf(stdout, "main : valeur lue = %d\n", i);
	}
	return EXIT_SUCCESS;
}
