Skip to content

IngridLemosCaetano/pipex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀✅ pipex ✅🚀

💻 Sobre o projeto

O pipex faz parte da grade da Escola 42 (Milestone 2).

O projeto consiste em reproduzir o comportamento do operador | (pipe) do shell, permitindo encadear a saída de um comando como entrada de outro, utilizando as chamadas de sistema em C.

Na prática o programa deve executar algo equivalente a:

	< infile cmd1 | cmd2 > outfile

Utilizando o programa:

	./pipex infile "cmd1" "cmd2" outfile

🧠 Conceitos utilizados

  • Processos (fork)
  • Comunicação entre processos (pipe)
  • Redirecionamento de arquivos (dup2)
  • Execução de comandos (execve)
  • Manipulação de erros
  • Variáveis de ambiente (PATH)

⚙️ Funcionamento

O programa recebe 4 argumentos:

	./pipex infile cmd1 cmd2 outfile
  • infile: arquivo de entrada.
  • cmd1: primeiro comando a ser executado.
  • cmd2: segundo comando a ser executado.
  • outfile: arquivo de saída.

Fluxo:

  1. O conteúdo de infile é passado para cmd1
  2. A saída de cmd1 é redirecionada para cmd2 através de um pipe.
  3. A saída de cmd2 é escrita em outfile

📁 Estrutura do Projeto

pipex/
├── inc/
│ └── pipex.h
│ └── pipex_bonus.h
├── lib/
│ └── libft/
│ └── libft.a/
├── src/
│ ├── main_bonus.c
│ ├── main.c
│ ├── pipex_bonus.c
│ ├── pipex_utils_bonus.c/
│ ├── pipex_utils.c/
│ ├── pipex.c/
├── infile
├── Makefile
└── README.md

⚙️ Compilação

  • Para compilar o projeto, execute:

    make ou make bonus
    
  • Para limpar os arquivos objeto:

    make clean
    
  • Para remover tudo (obj e executável):

    make fclean
    

▶️ Execução

Execução obrigatória

	./pipex infile "ls -l" "wc -l" outfile

⭐ Bônus – múltiplos pipes

O programa também suporta múltiplos comandos encadeados, reproduzindo o comportamento do shell com vários pipes:

	< infile cmd1 | cmd2 | cmd3 | ... | cmdn > outfile

Utilizando o pipex_bonus:

	./pipex_bonus infile "cat" "grep que" "tr a-z A-Z" outfile

✅ Grade ✅

Web1

Autora

Ingrid Lemos Caetano Silva

👩‍💻 GitHub | 💼 Linkedin

42 42

About

O projeto consiste em reproduzir o comportamento do operador | (pipe) do shell, permitindo encadear a saída de um comando como entrada de outro, utilizando as chamadas de sistema em C.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors