Programmation des thread sous c

Fermé
sabine - 8 janv. 2010 à 07:34
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 8 janv. 2010 à 08:33
Bonjour, je suis debutante en programmation des thread en c et j'ai un probleme dans ce code:

#include <stdio.h>

#include <stdlib.h>

#include <pthread.h>

#include<semaphore.h>

#include<unistd.h>

#include<errno.h>

sem_t mutexx;

sem_t mutex;

void * foction ()

{ printf("c'est un lecteur\n");

pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);

int nl=0, val=50;
sem_wait(&mutex);

nl=nl+1;

printf("le mutexe = %d\n" , sem_getvalue(&mutex,& val));

printf("nl= %d\n",nl);
sem_post(&mutex);

printf("le mutexe = %d\n" , sem_getvalue(&mutex,& val));

printf("val= %d\n",val);
return NULL;

}

main()

{
int x=0,
val1=1;

pthread_t p1;

x= sem_init(&mutexx, 0, 1);


if(x==0) {if (pthread_create(&p1,NULL,foction,0))

{ printf("le mutexe avant = %d\n" , sem_getvalue(&mutexx,& val1));

perror("pthread_create");

exit(EXIT_FAILURE);

}
}
else printf("le mutex n'est pas crée\n");
pthread_join(p1,NULL);
}

ce code est se compose d'une fonction "fonction" qui permet d'utiliser les semaphores, mais le probleme est dans la fonction pthread_create(&p1,NULL,fonction,0) dans son dernier parametre elle n'accepte aucun nombre a part le 0????
est ce que qu'un connait la solution???
A voir également:

1 réponse

Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 1 298
8 janv. 2010 à 08:33
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/pthread_create.3.html
(man est ton amis)
le dernier c'est un pointeur pour les arguments à passer à la fonction.
0