Для независимых процессов такой метод
Для независимых процессов такой метод обмена недоступен. Канальный обмен может быть запущен и с консоли. Например:
cat file.txt | wc
Здесь символ | олицетворяет создание канала между выводом из файла
file.txt и программой
wc, подсчитывающей число символов в словах. Процессы эти не являются независимыми, так как оба порождены процессом
shell.
Метод
FIFO (в BSD не реализован) сходен с канальным обменом, так как также организует лишь однонаправленный обмен. Такие каналы имеют имена, что позволяет их применять при обмене между независимыми процессами.
FIFO – это отдельный тип файла в файловой системе UNIX. Для формирования FIFO используется системный вызов
mknod.
int mknod(char *pathname, int mode, int dev);
где
pathname – имя файла (
FIFO),
mode – флаги владения и прав доступа,
dev – при создании
FIFO игнорируется.
Допускается создание
FIFO и из командной строки:
mknod name p.
FIFO также как и обычные канала работают с соблюдением следующих правил.
- Если из канала берется меньше байтов, чем там содержится, остальные остаются там для последующего чтения.
- При попытке прочесть больше байт, чем имеется в канале, читающий процесс должен соответствующим образом обработать возникшую ситуацию.
- Если в канале ничего нет и ни один процесс не открыл его на запись, при чтении будет получено нуль байтов. Если один или более процессов открыло канал на запись, вызов read будет заблокирован до появления данных.
- В случае записи в канал несколькими процессами, эти данные не перемешиваются.
- При попытке записать большее число байтов, чем это позволено каналом или FIFO, вызов write блокируется до освобождения нужного места. Если процесс предпринимает попытку записи в канал, не открытый ни одним из процессов для чтения, процессу посылается сигнал SIGPIPE, а вызов write присылает 0 с кодом ошибки errno=EPIPE.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий