Hello
J’ai un petit problème avec le code suivant:
[code]
#include “pthread.h”
#include
#include <stdio.h>
#include <stdlib.h>
volatile char theChar = ‘\0’;
volatile char afficher = 0;
void* lire ()
{
do {
while (afficher == 1) ; /* attendre mon tour /
theChar = getchar();
afficher = 1; / donner le tour */
} while (theChar != ‘F’);
return NULL;
}
void* affichage ()
{
int cpt = 0;
do {
while (afficher == 0) cpt ++; /* attendre /
std::cout << "Thread " << std::endl;
afficher = 0; / donner le tour */
}
while (theChar != ‘F’);
return NULL;
}
int main (void)
{
pthread_t filsA, filsB;
//std::string SendA= “AA”;
//std::string SendB= “BB”;
if (pthread_create(& filsA, NULL, affichage,NULL)) {
perror(“pthread_create”);
exit(EXIT_FAILURE);
}
if (pthread_create(&filsB, NULL, lire,NULL)) {
perror(“pthread_create”);
exit(EXIT_FAILURE);
}
if (pthread_join(filsA, NULL))
perror("pthread_join");
if (pthread_join(filsB, NULL))
perror("pthread_join");
printf("Fin du pere\n") ;
return (EXIT_SUCCESS);
}
l’erreur:
main.cpp:36: error: invalid conversion from ‘void* (*)()’ to ‘void* (*)(void*)’
main.cpp:40: error: invalid conversion from ‘void* (*)()’ to ‘void* (*)(void*)’
j’ai mis NULL pour que le message d’erreur soie plus explicit, avidement si je met une valeur qui … va servir a rien
Cela va donner un avertissent comme quoi la variable ne sera pas utilisée a la compilation.
si je met une variable il faut qu’elle soie passer par référence. ensuite dans la fonction je doit m’en servir pour ne rien faire…
une idée pour que je me passe de la variable et que cela ne “miaule” pas ?
ou une autre manière de faire peut être ?
Je compile avec g++ pour du c++
je me suis inspirer de la page suivate:
jean-luc.massat.perso.luminy.uni … hread.html
j’ai trouver de la doc ici
mtodorovic.developpez.com/linux/ … age_4#L4-1
Merci d’avance