Salut,
J'ai un petit soucis sur mon programme, en fait je fais un appel à fork() pour donner une tâche à faire à un fils, le detruire, re-donner une tâche à un autre fils ainsi de suite (il s'agit en fait d'un "mini shell" qu'on doit programmer).
Donc mon code ressemble à (je vous épargne les détails):
Mon problème c'est que ça rentre pas dans mon "if" ligne 7. J'ai fait des printf du pid et ça me met autre chose que 0, alors que normalement le fils doit avoir 0 en pid non ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 int main(){ while(1){ ... //traitement des données entrées par l'utilisateur, stockage des commandes dans un tableau ... int pid = fork(); if(pid ==0){ //on execute les commandes via la fonction execvp(...) break; } wait() //celui est nécessaire mais je sais pas si je dois le placer ici (c'est pour permettre au père d'attendre avant de refaire un tour de boucle) } }
Merci d'avance pour votre aide.
Partager