Rien ne s'affiche a l'execution(les tubes ordinaires)
brekiano
Messages postés15Date d'inscriptionlundi 10 décembre 2007StatutMembreDernière intervention 4 octobre 2010
-
7 nov. 2008 à 19:31
brekiano
Messages postés15Date d'inscriptionlundi 10 décembre 2007StatutMembreDernière intervention 4 octobre 2010
-
8 nov. 2008 à 13:35
bonsoir, svp chui débutant dans la programmation systeme sous unix.
j'ai fait ce programme qui affiche normalement le résultats de ce pipes :
]$ ps axu | grep root | wc -l
le voila le code :
#include <stdio.h>
#include
#include <stdlib.h>
int main(int argc,char**argv)
{
int tube[2];
int n;
if(pipe(tube)==-1)
{
printf("\nIl y a une erreur l'hors de la creation de tube\n");
exit(1);
}
if((n=fork())==-1)
{
printf("\nil y a une erreur l'hors de la creation d'un fils\n");
exit(2);
}
else if(n>0) // pere
{
close(tube[0]);
dup2(tube[1],1);
execlp("ps","ps","axu",0);
}
else //fils
{
int _tube[2];
int _n;
if(pipe(_tube)==-1)
{
printf("\nIl y a une erreur l'hors de la creation de _tube\n");
exit(3);
}
if((_n=fork())==-1)
{
printf("\nIl y a une erreur l'hors de la creation d'un _fils\n");
exit(4);
}
else if(_n>0)
{
/* fermeture de descripteur de l'ecriture pour le premier tube */
close(tube[1]);
/* ouverture de la lecture */
dup2(tube[0],0);
/* fermeture de descripteur de lecture pour le deuxieme tube */
close(_tube[0]);
/* ouverture de l'ecriture */
dup2(_tube[1],1);
execlp("grep","grep","root",0);
}
else
{
close(_tube[1]);
dup2(_tube[0],0);
execlp("wc","wc","-l",0);
}
}
return 0;
}
A voir également:
Rien ne s'affiche a l'execution(les tubes ordinaires)