implementation shell unix (fork, pipe) [C] - C - Programmation
Marsh Posté le 29-04-2004 à 17:04:10
1) utilise les balises de formatage de code si tu le peux
2) c'est quoi ta question?
Marsh Posté le 29-04-2004 à 17:16:40
en fait c'est déjà du point de vue algorithmie que je ne suis pas sûr d'avoir compris
si je souhaite implémenter "ls | wc", le principe c'est :
1) créer un pipe : pipe (int fd[2])
2) remplacer le file descriptor 1 (stdout) de ls par fd[1]
3) remplacer le file descriptor 0 (stdin) de wc par fd[0]
mais avec la structure imposée je n'arrive pas à mettre ça correctement en place
Marsh Posté le 29-04-2004 à 17:01:13
J'ai un programme à faire en C qui doit être capable d'exécuter les commandes de base suivantes :
# % ls
# % ls > filelist
# % cat filelist
# % cat < filelist
# % ls | wc
# % ls | cat | cat | cat | wc
les quatres premiers types de commandes fonctionnent (simples, redirections), mais j'ai des problèmes avec les pipes
J'avais une structure de base avec des fonctions déjà opérationnelles : parser...
donc il reste deux fonctions importantes :
j'explique un peu le principe : la fonction parse_line analyse la ligne de commande et place les arguments (nom de commande,"<",">","|","&",fin de ligne) dans un tableau.
Ensuite run_program est appelé. Elle a pour but de créer le nouveau processus. La partie redirection fonctionne, c'est pour la gestion des pipes que je ne m'en sors pas.
Message édité par frabill le 29-04-2004 à 18:18:47