Voici un code fonctionnel qui réalise la commande ps | cut -d 1-6
[code]#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
/* rappel
Entrée standard stdin = 0
Sortie standard stdout = 1
*/
int main(void) {
int p[2];
pipe§;
pid_t pid;
pid_t pid2;
pid = fork();
if(pid == -1) {
printf("Erreur");
}
if(pid > 0) {
pid2 = fork();
if(pid2 == -1) {
printf("Erreur");
}
if(pid2 > 0) {
//pere
printf("pere");
} else { //fils2
dup2(p[1],1);
execlp("ps","ps", NULL);
close(p[1]);
}
} else { //fils1
dup2(p[0],0);
execlp("cut","cut","-c","1-6",NULL);
close(p[0]);
}
}[/code]
Je souhaiterais savoir pourquoi si je ne mets pas ps et cut en double dans execpl() ça ne fonctionne pas (le code compile mais ne fonctionne pas) et où trouver la source de execpl().
Merci d’avance pour vos réponses,