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 :

problème avec fork()


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  
    Inscrit en
    Mai 2012
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 78
    Par défaut problème avec fork()
    bonsoir je croyais avoir compris comment marchait fork() mais là je ne comprends plus rien

    je veux créer un processus père et 2 fils donc je fais ça :

    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
    30
    31
     
    for(i=0;i<2;i++){
     
    		int n=fork();
     
    		if(n>0){
    			//initFichier("test.test");
                            printf("père\n");
    			for (i=0;i<2;i++){
    				int message;
    				pid=wait(&message);
    			} 
    			//emctl(semid,0,IPC_RMID,0);
     
    		}else if(n==0&&i==0){
                            printf("fils1\n");
    			//ecrireFichier("test.test",a,3);
          			exit(0);
     
    		}else if(n==0&&i==1){
     
    			printf("fils2\n");
    			//lireFichier("test.test",a,3);
          			exit(0);  
     
    		}else{
    			exit(1);
    		}
     
     
    	}

    ce code m'affiche père \n et fils1 \n il ne va jamais dans la condition n==0&&i==1 je ne comprends pas pourquoi

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Bonjour,

    Ton code a deux problèmes :
    - un oublie de parenthèses pour le premier if; J'ai rien dit, je n'ai pas l'habitude de ce type d'indentation.
    - l'utilisation de la variable i deux fois dans deux boucles imbriquées... ainsi tu ne fait qu'un seul tour de ta grande boucle (la première) vu qu'à la sortie de ta petite boucle (la deuxième) i vaut 2.

  3. #3
    Inactif  
    Inscrit en
    Mai 2012
    Messages
    78
    Détails du profil
    Informations forums :
    Inscription : Mai 2012
    Messages : 78
    Par défaut
    ah oui merci
    et pour l'identation je suis sur gedit et le tab est grand ^^

  4. #4
    Membre Expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Par défaut
    Citation Envoyé par Alays Voir le message
    ah oui merci
    et pour l'identation je suis sur gedit et le tab est grand ^^
    Bonjour.

    Complètement off-topic, dans les préférences (edit/preferences) de gedit tu peux provoquer l'insertion automatique de caractères espace au lieu d'un caractère tabulation ... c'est très avantageux pour avoir une indentation cohérente entre différent viewer

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    ^Il me semble que le comportement par défaut pour SIGCHLD, c'est de l'ignorer.
    Citation Envoyé par kwariz Voir le message
    Complètement off-topic, dans les préférences (edit/preferences) de gedit tu peux provoquer l'insertion automatique de caractères espace au lieu d'un caractère tabulation ... c'est très avantageux pour avoir une indentation cohérente entre différent viewer
    Et très désavantageux pour faire le boulot de programmation dans l'éditeur lui-même.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre Expert
    Avatar de kwariz
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Octobre 2011
    Messages
    898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2011
    Messages : 898
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    Et très désavantageux pour faire le boulot de programmation dans l'éditeur lui-même.
    Bonjour,

    pourquoi ?

  7. #7
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par Médinoc Voir le message
    ^Il me semble que le comportement par défaut pour SIGCHLD, c'est de l'ignorer.
    Effectivement, j'avais faux
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  8. #8
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par Alays Voir le message
    ce code m'affiche père \n et fils1 \n il ne va jamais dans la condition n==0&&i==1 je ne comprends pas pourquoi
    Peut être parce que le fils1 qui meurt immédiatement dans ton code fait que le pere reçoit un signal SIGCHLD (avant d'avoir pu lancer le fils2) et comme il n'y a pas de handler de ce signal dans le père, cela provoque la mort du père (comportement par défaut il me semble lorsqu'un process reçoit un SIGCHLD et qu'il n'y a pas de handler)
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  9. #9
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    perso j'ai une grosse préférence pour les espaces, quelque soit l'éditeur il aura toujours la même representation.

    Après cela reste une question de gout, il y'a moyen de mixer.
    http://www.emacswiki.org/emacs-en/SmartTabs

Discussions similaires

  1. problème avec fork()
    Par Boss38400 dans le forum Débuter
    Réponses: 4
    Dernier message: 20/04/2010, 22h04
  2. Problème avec les forks
    Par dot-_-net dans le forum C
    Réponses: 10
    Dernier message: 09/05/2008, 23h29
  3. probléme avec fork()
    Par yous18 dans le forum C
    Réponses: 38
    Dernier message: 08/03/2008, 11h21
  4. problème avec fork et execvp !
    Par julien.cousineau dans le forum Linux
    Réponses: 0
    Dernier message: 07/10/2007, 23h38
  5. [Perl]problème avec fork
    Par LE NEINDRE dans le forum Programmation et administration système
    Réponses: 1
    Dernier message: 23/09/2005, 15h31

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