Bonjour a tous,

j'ai un petit soucis avec un programme.

mon programme dois pouvoir executer des commandes avec execvp et si il y a des pipe les executé

voila mon code

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
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
 
int main(int argc, char **argv)
{
  int pipefd[2];
  int pid;
  char *ls[] = {"ls", "-al", NULL};
  char *cat[] = {"cat", "-e", NULL};
 
  pipe(pipefd);
  pid = fork();
  if (pid == 0)
    {
      dup2(pipefd[0], 0);
      close(pipefd[1]);
      execvp(cat[0], cat);
    }
  else
    {
      dup2(pipefd[1], 1);
      close(pipefd[0]);
      execvp(ls[0], ls);
    }
}
Mon code n'est pas dinamique.

Comment je peux faire pour par exemple rajouté un 2eme pipe ?

merci d'avance