Salut à tous, je suis en train de devellopper un shell UNIX, et je
bloque un peu sur les pipes.
Donc j'ai écris un programme tout simple qui simule un
'ls -l | grep main'...
int main(void)
{
int i = 0;
exec_grep(i);
return 0;
}
/*************************/
Le code est assez simple, au premier appel de exec_grep on ouvre les
pipes, puis au second, on execute le grep.
Le problème c'est que parfois le programme s'execute bien, mais parfois
il bloque, il ne se termine pas normalement, je tape une fois entrée et
il se termine.... Bref, je voudrais savoir ce qui cloche dans mon petit
bout de programme, je suis programmeur débutant, donc si vous avez une
meillieure manière de procéder pour faire un pipe....
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Anthony Gelibert
La commande fork renvoie l'entier suivant lors de l'appel : -1 : erreur de création du nouveau processus 0 : pour le fils n>0 : pour le pere (c'est le numero du processus fils) Donc dès le départ il y a un problème dans ton code.
La commande fork renvoie l'entier suivant lors de l'appel :
-1 : erreur de création du nouveau processus
0 : pour le fils
n>0 : pour le pere (c'est le numero du processus fils)
Donc dès le départ il y a un problème dans ton code.
La commande fork renvoie l'entier suivant lors de l'appel : -1 : erreur de création du nouveau processus 0 : pour le fils n>0 : pour le pere (c'est le numero du processus fils) Donc dès le départ il y a un problème dans ton code.
Patrick Lamaizière
:
Le code est assez simple, au premier appel de exec_grep on ouvre les pipes, puis au second, on execute le grep.
Je dis ça je dis rien mais euh la fonction exec_grep ne fait pas un grep tout le temps ?
Ce serait pas plus lisible d'avoir plusieurs fonctions qui font ce que leur nom indique ?
philuxNO@SPAMtuxfamily.org:
Le code est assez simple, au premier appel de exec_grep on ouvre les
pipes, puis au second, on execute le grep.
Je dis ça je dis rien mais euh la fonction exec_grep ne fait pas un grep
tout le temps ?
Ce serait pas plus lisible d'avoir plusieurs fonctions qui font ce que
leur nom indique ?