
- •Содержание
- •1. Теоретическая часть
- •1.1 Процессы. Создание процессов – функция fork()
- •1.2 Передача управления: execve()
- •1.3 Семейство exec().
- •1.4 Ожидание процесса wait().
- •1.5 Межпроцессорное взаимодействие, каналы( pipe() ).
- •2. Описание базовых программ
- •3. Список заданий
- •I. К части 1 (программа 2.1)
- •II . По части номер 2(программа 2)
- •III. По части номер 3(программа 3)
- •Список использованной литературы.
3. Список заданий
I. К части 1 (программа 2.1)
В рамках одной программы создать два дочерних процесса и вывести их PID и PID их родителей.
В рамках одной программы создать n дочерних процессов (n берется из аргумента командной строки) и вывести их PID и PID их родителей.
В рамках одной программы создать n дочерних процессов (n берется из файла) и вывести их PID и PID их родителей.
II . По части номер 2(программа 2)
Родительская программа создает файл_1 и записывает в него 2 целых числа. Дочерняя программа получает от родительской программы имя файла_1, количество записанных чисел и имя файла_2 для записи результата; читает эти числа из файла, перемножает их и записывает результат в файл_2. В случае успеха дочерняя программа возвращает 0, в случае неуспеха – 1. Далее родительская программа анализирует код возврата дочерней программы, и, если всё нормально, читает результат из файла_2 и выводит его на экран, иначе выдает сообщение об ошибке дочернего процесса.
Родительская программа создает файл_1 и файл_2, в каждый файл записывает по одному целому числу. Дочерняя программа получает от родительской программы имена файлов и меняет местами содержимое файлов. В случае успеха дочерняя программа возвращает 0, в случае неуспеха – 1. Далее родительская программа анализирует код возврата дочерней программы, и, если всё нормально, читает результаты из обоих файлов и выводит их на экран, иначе выдает сообщение об ошибке дочернего процесса.
Родительская программа создает файл_1 и файл_2, в каждый файл записывает по одному целому числу. Две дочерних программы получают от родительской программы по одному имени файла и удваивают содержимое своего файла. В случае успеха дочерние программы возвращают 0, в случае неуспеха – 1. Далее родительская программа анализирует коды возврата дочерних программ, и, если всё нормально, читает результаты из обоих файлов и выводит их на экран, иначе выдает сообщение об ошибке соответствующего дочернего процесса.
III. По части номер 3(программа 3)
Создать канал. Родитель записывает в него целое число введенное с клавиатуры, процесс читает его и возводит во 2 степень и выводит результат на экран.
Создать канал. Родитель записывает в него предложение введенное пользователем с клавиатуры, процесс читает его и выводит на экран.
Создать канал. Родитель записывает в него массив целых чисел, процесс читает их, упорядочивает в порядке возрастания и выводит результат на экран.
Список использованной литературы.
Арнольд Роббинс. Linux: программирование в примерах. Москва 2005г.
В.В. Подбельский, С.С. Фомин. Программирование на языке Си.2004г.
Материалы сайта ru.wikipedia.org
Николай Иванов - Программирование в Linux. Самоучитель