- •Лабораторная работа №2 “Создание процесса с использование вызова fork()”
- •Выполнение Команды
- •Понятие создания процесса
- •Идентификация Процесса
- •Создание Процесса
- •Выполнение Файла
- •Int execv (const char *filename, char *const argv[]) (функция)
- •Завершение Процесса
- •Состояние завершения процесса
- •Пример Создания Процесса
- •Соответствие стандартам
- •Задание
Соответствие стандартам
ANSI C, BSD 4.3, POSIX, X/OPEN
Задание
Напишите программу №1, выполняющую следующие действия:
печатает идентификаторы текущего и родительского процессов
создает дочерний процесс, который выполняет следующее:
сообщает о своем создании
печатает свой собственный идентификатор и идентификатор родителя
ожидает в течение 5 секунд
выполняет внешнюю программу, описанную далее, передавая ей как минимум три параметра. Если исполнение завершается с ошибкой, завершается с кодом ошибки -2. Используйте функцию perror() для того, чтобы напечатать сообщение об ошибке
если выполнение fork() завершается с ошибкой, завершается с кодом ошибки -1
сообщает о создании нового процесса и напечатайте его идентификатор
печатает список процессов используя команду “ps -afl” и вызов system()
ожидает завершение дочернего процесса и сообщает о том, что он завершился. Проверяет, что дочерний процесс завершился нормально и печатает код, который вернул дочерний процесс при завершении
сообщает, что работа программы завершена и возвращает 0.
Напишите программу №2, вызываемую в программе №1, которая выполняет следующие действия:
сообщает, что выполнение процесса началось
сообщает свой и родительский идентификаторы процессов
сообщает имя исполняемого файла (имя не должно быть жестко зашито в коде программы)
печатает все параметры запуска программы
завершает выполнение, возвращая 0
