Programmation des thread sous c
sabine
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
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???
#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:
- Programmation des thread sous c
- Application de programmation - Guide
- Comment mettre en veille un programme sous windows 10 - Guide
- Programmer en basic sous windows 10 - Télécharger - Édition & Programmation
- Compte thread - Accueil - Réseaux sociaux
- Thread instagram c'est quoi - Accueil - Guide réseaux sociaux