|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Самый простой способ создать процесс — использовать для этого функцию system. На стандартный ввод, вывод и вывод ошибок это не влияет (они наследуются от Perl-процесса). Строка в обратных кавычках создает процесс и передает данные со стандартного вывода этого процесса как строковое значение для Perl-программы. Стандартный ввод и стандартный вывод ошибок не изменяются. Оба эти метода требуют завершення процесса до выполнения другого кода. Простой способ получить асинхронний процесс (процесс, который позволяет продолжать выполнение Perl-программы до своего завершення) — открыть команду как дескриптор файла с созданием канала для стандартного ввода или стандартного вывода этой команды. Команда, открытая как дескриптор файла для чтения, наследует стандартный ввод и стандартный вывод ошибок от Perl-программы; команда, открытая как дескриптор файла для записи, наследует от Perl-программы стандартный вывод и стандартный вывод ошибок. Самый гибкий способ запустить процесс — заставить программу вызвать функции fork, ехес и wait или waitpid, которые полностью соответствуют своим UNIX-тезкам. С помощью этих функции вы можете запустить какой-либо процесс синхронно или асинхронне, а также конфигурировать по своему усмотрению стандартный ввод, стандартный вывод и стандартный вывод ошибок*. * Полезно также знать о формах типа open(STDERR, ">&stdout"), используемых для точной настройки дескрипторов файлов. См. пункт open в главе 3 книги Programming Perl или на man-странице perlfunc(l). Содержание (общее) | Содержание раздела Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту: |
|