pipex42_21 - begin 24.12.2021
##План
- Написать программу Pipex.
- Список рекомендуемых (разрешенных) функций.
◦ access проверяет права реального пользователя для файла
◦ unlink удаляет имя из файловой системы
◦ close закрывает файловый дескриптор
◦ read
◦ write
◦ malloc
◦ wait, waitpid ждет завершения дочернего процесса
◦ free
◦ pipe создает pipe, однонаправленный канал для передачиданных
◦ dup, dup2 дублировать дескриптор файла
execve выполняет программу, на которую указывает путь
int execve (const char *pathname, char *const argv [], char * const envp []);
- pathname "путь где находится команда"
- argv [] "команда с флагами"
- envp [] "переменное окружение"
◦ fork создает дочерний процесс
#include <sys/types>
#include <unistd.h>
pid_t fork(void);
◦ perror распечатать сообщение об ошибке системы
◦ strerror возвращает строку, описывающую номер ошибки
◦ exit завершение процесса
3) Цель - написать программу Pipex.Это должно быть выполнено таким образом:
$> ./pipex file1 cmd1 cmd2 file2
Выполнение программы pipex должно выполняться так же, как следующая команда оболочки:
$> < file1 cmd1 | cmd2 > file2
> ./pipex infile ``ls -l'' ``wc -l'' outfile
должно быть таким же, как “< infile ls -l | wc -l > outfile”
$> ./pipex infile ``grep a1'' ``wc -w'' outfile
должно быть таким же, как “< infile grep a1 | wc -w > outfile”