В лекции рассмотрено: способы создания процессов, передача информации при запуске файла на исполнение (аргументы командной строки, переменные окружения), Создание и завершение процессов в ОС Windows (функции CRT, функции WinAPI), создание и завершение процессов, запуск исполняемых файлов в ОС Unix
Фрагменты из лекции:
Новый процесс может создаваться двумя способами:
запуск на исполнение файла (ОС Windows) — этот способ прост для программиста, но лишает его некоторых возможностей;
создание копии существующего процесса (OC Unix) — сложнее, однако шире возможности передачи информации дочернему процессу. В этом случае запуск файла на исполнение выполняется отдельной командой.
Передача параметров при запуске файла на исполнение
Часто при запуске файла, выполняющего какие-либо действия, необходимо передать ему параметры этих действий.
Например архиватору требуется знать команду (упаковать или распаковать?) и файлы для обработки.
Автоматическая передача этих параметров позволяет избежать дублирования их ввода пользователем (этим пользуются например, программы типа Total Commander, вызывая архиваторы для выбранных 3 пользователем файлов)
Аргументы командной строки
Аргументы командной строки это строки, записываемые через пробел после имени файла при запуске его из командной строки.
Аргументы разделяются между собой пробелами. Если один аргумент должен содержать внутри пробелы (или другие специальные символы), его следует взять в двойные кавычки.
Первым аргументом считается имя запускаемого файла.
Создание процессов в ОС Windows CRT
Для создание нового процесса с запуском исполняемого файла в C Run-time Library ОС Windows используется семейство функций _spawn.
Все функции этого семейства начинаются со слова _spawn и содержат дополнительные буквы, указывающие особенности их работы.
Функция может содержать от одной до трех букв: _spawnl или _spawnvpe.
Создание процесса в ОС Unix
Создание процесса в ОС Unix осуществляется функцией fork.
Функция fork создает копию текущего процесса и при успешном выполнении возвращается дважды: в родительский и дочерний процессы.
Определить то, в каком процессе вы находитесь, можно анализируя значение, возвращаемое fork.