Bonjour,
Je souhaite (comme indiqué dans le titre) implémenter la commande "ls -l | wc -l" en C.
Mon problème est que je ne trouve pas de solution comment donner le contenu de ls à wc.
Voici ce que j'ai déjà fait:
J'ai ajouté -, car dans la man, il est expliqué ceci:
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
29
30
31
32 #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <unistd.h> int main(int argc,char **argv) { pid_t pid; int tube[2]; char buffer[3000]; pipe(tube); pid=fork(); switch(pid) { case -1: perror("fork");exit(1); case 0: close(1); dup(tube[1]); close(tube[1]); close(tube[0]); execl("/bin/ls","ls","-l",NULL); exit(0); default: close(0); dup(tube[0]); close(tube[1]); close(tube[0]); /* Mon problème se situe ici, comment donner la pipe à wc */ execl("/bin/wc","wc","-l","-",NULL); } return 0; }
Print newline, word, and byte counts for each FILE, and a total line if more than one FILE is specified. With no FILE, or when
FILE is -, read standard input.
J'ai cherché sur le forum et tuto, mais je ne trouve pas la solution.
Quelqu'un peut-il me donner un coup de main stp ?
Partager