Erreur de segmentation

Signaler
Messages postés
242
Date d'inscription
lundi 17 décembre 2007
Statut
Membre
Dernière intervention
5 décembre 2012
-
Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
-
Bonjour,
j'ai une erreur de segmentation quand je compile :
- je suis débutant en C.
- j'utilise un thread selon ce simple et court exemple :
- je veux passer en param la structure thread_handle_t

Ma question :
- est ce que c'est la bonne manière d'écrire l'argument de ask_for_login :
thread_handle_t *th;
pthread_create(&thread_lp, NULL, ask_for_login,(void *)th)
- est ce que j'aurai du déclarer une structure au lieu d'un pointeur vers une structure, cad :
thread_handle_t th;

mon code :


 
void* ask_for_login(void* data) {
    thread_handle_t *th;
    th = (thread_handle_t *)data;
  
  while((*th->use_lp 0) && (*th->use_sc 0)){
      printf("ask_for_login...\n");
      login = getchar();
      *th->use_lp = 1;
   }   
  pthread_exit(NULL);
  return  NULL;
}


 
int main (void) { 
 
  pthread_t thread_lp;
  void* status;
  int cpt = 0;
 
  thread_handle_t *th;
  *th->use_sc = 0;
  *th->use_lp = 0;
 
  printf("veuillez inserer votre carte ou entrer votre login\n");
 
 /* On attend que l'user entre son login */
  if (pthread_create(&thread_lp, NULL, ask_for_login,(void *)th)) { 
    perror("pthread_create"); 
    printf("erreur : pthread_create\n");
    exit(EXIT_FAILURE); 
  }
  
    while((*th->use_lp 0) && (*th->use_sc 0)){
      printf("j'attend l'insertion d'une carte...\n");
      sleep(1);
      cpt ++;
      if(cpt == 6){
*th->use_sc = 1;
//pthread_kill(thread_lp, 1);
      }
    }
 
    if(*th->use_sc == 1){
      //tuer thread_L;
      printf("Carte inseree, bonjour Aro. Veuillez entrer votre code PIN :\n");
      sleep(3);
    }
    else{
      printf("Veuillez entrer votre mot de passe\n");
      sleep(3);
    }
 
    printf("Authentification terminee\n");
    return (EXIT_SUCCESS);
}




Merci d'avance pour votre aide.

1 réponse

Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
Effectivement, thread_handle_t th;