This project is the discovery in detail and by programming of a UNIX mechanism that you already know: pipes.
The pipex 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
Functions allowed: open, close, read, write, malloc, free, perror, strerror, access, dup, dup2, execve, exit, fork, pipe, unlink, wait, waitpid.
The return value of pipex should be the exit code of the second command.
./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