avoreshin / pipex

pipex42_21

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pipex

pipex42_21 - begin 24.12.2021

##План

  1. Написать программу Pipex.
  2. Список рекомендуемых (разрешенных) функций.
    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”

About

pipex42_21


Languages

Language:C 95.5%Language:Makefile 4.5%