Go to file
2025-10-02 10:18:09 +02:00
libft done 2022-01-21 08:10:02 +01:00
main.c done 2022-01-21 08:10:02 +01:00
Makefile done 2022-01-21 08:10:18 +01:00
pipex.h done 2022-01-21 08:10:02 +01:00
README.md docs: add comprehensive README for Unix pipe and redirection recreation project 2025-10-02 10:18:09 +02:00
utils.c done 2022-01-21 08:10:02 +01:00

pipex

Description

pipex est un projet de l'École 42 qui reproduit le comportement des pipes Unix. Il permet d'exécuter des commandes en pipeline comme dans un shell, en gérant l'entrée/sortie et les processus fils.

Objectif

Reproduire la commande shell : < file1 cmd1 | cmd2 > file2

Fonctionnalités

  • Execution de pipelines avec 2 commandes
  • Redirection d'entrée depuis un fichier
  • Redirection de sortie vers un fichier
  • Gestion des processus avec fork/exec
  • Communication via pipes
  • Gestion d'erreurs robuste

Technologies utilisées

  • Langage : C
  • Processus : fork, execve, wait
  • I/O : pipe, dup2, open, close
  • Parsing : Analyse des commandes et arguments

Installation

git clone <repository-url>
cd pipex
make
./pipex file1 "cmd1" "cmd2" file2

Exemple d'utilisation

# Équivalent à : < infile grep hello | wc -l > outfile
./pipex infile "grep hello" "wc -l" outfile

# Équivalent à : < input.txt cat | head -5 > output.txt  
./pipex input.txt "cat" "head -5" output.txt

Algorithme

  1. Fork du processus principal
  2. Processus fils 1 :
    • Redirection stdin vers file1
    • Redirection stdout vers pipe
    • Execution cmd1
  3. Processus fils 2 :
    • Redirection stdin depuis pipe
    • Redirection stdout vers file2
    • Execution cmd2
  4. Wait des processus fils

Bonus : here_doc

Support de << (here document) comme bash :

./pipex here_doc LIMITER "cmd1" "cmd2" file

Gestion d'erreurs

  • Fichiers inexistants ou permissions
  • Commandes introuvables
  • Échec des appels système
  • Arguments invalides

Compétences développées

  • Programmation système Unix
  • Gestion des processus et IPC
  • Redirections d'entrée/sortie
  • Pipes et communication inter-processus

Auteur

Alexandre Pommier (apommier) - École 42