рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Ls -l /home/student | sort

Ls -l /home/student | sort - раздел Компьютеры, Межпроцессное взаимодействие в ОС Linux 1.3. Замените В Исходном Тексте Программы Оператор (Дайте Эт...

1.3. Замените в исходном тексте программы оператор (дайте этой программе имя pipework1.c)

execlp ("ls", "ls", "-l", "/home/student", 0);

несколькими системными вызовами write(), которые запишут в канал последовательность слов (например, “thisn”,“isn”,“a”,“messagen”,‘fromn”,“sendingn”,“process”). Для записи этих слов в канал следует использовать системный вызов write() так же, как и для обычного файла, указывая дескриптор fd[1]. После записи всех слов в канал закройте fd[1] и завершите процесс (exit()). Выполните программу.

Примечание. Для этой модификации оператор dup2(fd[1],1); НЕ НУЖЕН, его следует убрать.

1.4. Замените в программе из задания 1.3 оператор (дайте этой программе имя pipework2.c)

execlp ("sort", "sort", 0);

фрагментом, в котором читаются слова из канала и выводятся на стандартное устройство вывода (т.е. на экран). Для чтения данных из канала следует использовать системный вызов read() как и для обычного файла, указывая дескриптор fd[0]. После чтения и печати всех слов закройте fd[0] и завершите процесс (exit()).

Замечание. Для этой модификации оператор dup2(fd[0],0); НЕ НУЖЕН, его следует убрать.

1.4. В общем случае читать из канала могут несколько процессов; писать в канал также могут несколько процессов. Напишите программу pipework3.c, которая создает три дочерних процесса. Два из них записывают в канал по одному сообщению каждый, а третий дочерний процесс читает эти сообщения из канала и распечатывает их.

1.5. Для установления двухсторонней связи между процессами следует создать два канала, работающих в противоположных направлениях. Напишите программу pipework4.c для двухстороннего общения между двумя процессами с использованием двух каналов.

1.6. Запишите результаты работы всех программ и объясните их работу.

 

II. Именованные каналы (named pipes, FIFOs)

Именованный канал - это однонаправленный канал связи между двумя или более процессами в UNIX. В действительности именованный канал является файлом, который создается одним процессом и который затем может использоваться этим и/или другими процессами для связи. Существование в каталоге именованного канала легко можно обнаружить при просмотре оглавления каталога: строка, соответствующая именованному файлу, начинается с символа 'p' (вместо 'd' для каталога или '-' для обычного файла).

В оболочке именованный канал создается командой mknod или mkfifo.

Задание2. Выполните команду

– Конец работы –

Эта тема принадлежит разделу:

Межпроцессное взаимодействие в ОС Linux

На сайте allrefs.net читайте: "Межпроцессное взаимодействие в ОС Linux"

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Ls -l /home/student | sort

Что будем делать с полученным материалом:

Если этот материал оказался полезным ля Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Все темы данного раздела:

Межпроцессное взаимодействие в ОС Linux
Цель работы: научиться использовать каналы и именованные каналы для межпроцессного взаимодействия в ОС Linux.   I. Каналы (unnamed pipes)

Ls -l /home/student | sort
где "|" - символ операции канала в оболочке.     Задание 1.

Cat > fifo1
Затем набирайте произвольные строки, завершите ввод символом конца файла CTRL-d. Что будет выведено в первом окне? В программе именованный канал создается при помощ

Вопросы к части I
1. Для чего предназначены неименованные каналы? 2. Объясните параметры системного вызова pipe(). 3. Что такое входной и выходной конец канала? 4. Как в п

Вопросы к части II
1. В чем отличие именованных каналов от неименованных? 2. Как создать в программе именованный канал? 3. Каково действие режима O_NONBLOCK, указываемого при открыт

Источники информации
1. Стивенс У. UNIX: взаимодействие процессов. - СПб: Питер, 2003. (Глава 4). 2. Митчел М., Оулдем Дж., Самьюэл А. Программирование для Linux. Профессиональный подход. - М.: Издательский до

Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • Популярное
  • Облако тегов
  • Здесь
  • Временно
  • Пусто
Теги