This project will let you discover in detail a UNIX mechanism that you already know by using it in your program.
![](https://github.com/pedromelocf/utilities/raw/master/pipexe.png)
I am glad to share that I have just finished the first step in the 42 journey: Finishing the first phase, delivering 6 projects along this process and now I am heading to the second one.
In pipex, the last project in phase one, we have to create a program that reproduces the behavior of the bash terminal when dealing with redirection and pipes.
To do this, you need to deeply understand these major topics:
• Pipe concept;
• Fork and process identification;
• File descriptors redirection.
Basically, our program will be executed as follows:
./pipex file1 cmd1 cmd2 file2
It must take 4 arguments:
• file1 and file2 are file names.
• cmd1 and cmd2 are shell commands with their parameters.
It must behave exactly the same as the shell command below:
$> < file1 cmd1 | cmd2 > file2
Examples:
$> ./pipex infile "ls -l" "wc -l" outfile
Should behave like: < infile ls -l | wc -l > outfile
$> ./pipex infile "grep a1" "wc -w" outfile
Should behave like: < infile grep a1 | wc -w > outfile