IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Thread et erreur de segmentation


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 39
    Points : 24
    Points
    24
    Par défaut Thread et erreur de segmentation
    Bonjour,

    Je débute en C et je commence à regarder un peu les thread et des leur création j'ai des problème de segmentation mais je ne vois pas d'où ça viens surtout que les 3 premiers se crée bien puis pour les suivants j'ai une erreur de segmentation. C'est surement pas grand chose mais j'arrive pas à voir d'où ça viens.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #include<stdio.h>
    #include<pthread.h>
    #include<stdlib.h>
     
     
     
    void *creer_train(int i)
    {
    	printf("le train numéro %d a ete cree \n",i);
     
     
    }
    int main()
    {
     
     
    	pthread_t p1,p2,p3,p4,p5;
     
    	if(pthread_create(&p1,NULL,creer_train(1),NULL)==-1) fprintf(stderr,"erreur de création de thread\n");
    	if(pthread_create(&p2,NULL,creer_train(2),NULL)==-1) fprintf(stderr,"erreur de création de thread\n");
    	if(pthread_create(&p3,NULL,creer_train(3),NULL)==-1) fprintf(stderr,"erreur de création de thread\n");
    	if(pthread_create(&p4,NULL,creer_train(4),NULL)==-1) fprintf(stderr,"erreur de création de thread\n");
    	if(pthread_create(&p5,NULL,creer_train(5),NULL)==-1) fprintf(stderr,"erreur de création de thread\n");
     
     
     
     
    	exit(0);
    }
    Merci d'avance pour votre aide

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2011
    Messages
    1 255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 255
    Points : 2 627
    Points
    2 627
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int pthread_create(pthread_t * thread, pthread_attr_t * attr, void * (*start_routine)(void *), void * arg);
    start_routine : nom de ta fonction
    arg : argument de ta fonction :
    Donc, ta fonction doit avoir ce prototype :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void *creer_train(void *i)
    et l'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int arg = 1;
    pthread_create(&p1,NULL,creer_train,(void *)&arg)
    Pour plus d'info, regarder par .

  3. #3
    Membre éclairé
    Avatar de Kirilenko
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    234
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 234
    Points : 807
    Points
    807
    Par défaut
    L'argument envoyé à ta routine doit être spécifié en quatrième argument, et pas directement dans le troisième.
    Récursivité en C : épidémie ou hérésie ?

    "Pour être un saint dans l'Église de l'Emacs, il faut vivre une vie pure. Il faut se passer de tout logiciel propriétaire. Heureusement, être célibataire n'est pas obligé. C'est donc bien mieux que les autres églises" - Richard Stallman

Discussions similaires

  1. erreur de segmentation avec des threads
    Par momoski89 dans le forum C
    Réponses: 2
    Dernier message: 07/05/2013, 16h17
  2. Erreur de segmentation dans un thread
    Par Littlepea dans le forum wxWidgets
    Réponses: 3
    Dernier message: 27/06/2008, 19h18
  3. Erreur de segmentation (Inconnue)
    Par Dark-Meteor dans le forum C
    Réponses: 5
    Dernier message: 08/09/2005, 13h42
  4. [Dev-C++] Erreur de segmentation...
    Par sas dans le forum Dev-C++
    Réponses: 11
    Dernier message: 26/03/2005, 14h25
  5. erreur de segmentation
    Par transistor49 dans le forum C++
    Réponses: 10
    Dernier message: 15/03/2005, 11h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo