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:
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;
}
J'ai ajouté -, car dans la man, il est expliqué ceci:

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 ?