ПроцессОс
Стд::СредаИсполнения::ПроцессОс Базовые типы: Объект |
Доступность: Сервер |
Иерархия типа
graph TD;
ПроцессОс["ПроцессОс"]-->Объект["Объект"];
Объект для работы с внешними процессами.
Сравнение ссылочное
Конструкторы
ПроцессОс
Доступность: Сервер |
Перегрузка: ПроцессОс(КомандаЗапуска: Строка, Аргументы: ЧитаемыйМассив<Объект>, СоединитьПотокиОшибокИВывода: Булево = Истина) |
Создает процесс с указанной командой запуска КомандаЗапуска
и признаком объединения потоков вывода и ошибок СоединитьПотокиОшибокИВывода
. Созданный процесс не запускается.
ПроцессОс
ПроцессОс(
КомандаЗапуска: Строка,
Аргументы: ЧитаемыйМассив<Объект>,
СоединитьПотокиОшибокИВывода: Булево = Истина)
Доступность: Сервер |
Свойства
ПотокиОшибокИВыводаСоединены
ТолькоЧтение ПотокиОшибокИВыводаСоединены: Булево |
Доступность: Сервер |
Определяет, соединены ли потоки ошибок и вывода:
Истина
- ошибки пишутся в поток вывода.Ложь
- ошибки пишутся в поток ошибок.
Методы
Живой
Живой(): Булево
Доступность: Сервер |
Проверяет, жив ли запущенный процесс.
Запустить
Запустить(Каталог: Строка? = Неопределено)
Доступность: Сервер |
Запускает созданный процесс или конвейер процессов.
Каталог
- рабочий каталог запускаемого и дочерних процессов.
ОжидатьЗавершения
ОжидатьЗавершения(Длительность: Длительность): Булево
Доступность: Сервер |
Ожидает завершения выполнения одного из условий:
- внешний процесс завершился,
- прошло заданное количество секунд
Длительность
(если задано).
Возвращает Ложь
, если внешний процесс не завершился за указанное время Длительность
.
Остановить
Остановить()
Доступность: Сервер |
Останавливает созданный процесс.
ПередатьВыводВ
ПередатьВыводВ(
КомандаЗапуска: Строка,
Аргументы: ЧитаемыйМассив<Объект>
): ПроцессОс
Доступность: Сервер |
ПолучитьPid
ПолучитьPid(): Число?
Доступность: Сервер |
Возвращает идентификатор процесса в операционной системе, либо Неопределено
, если получение PID
‘а невозможно.
ПолучитьКодВозврата
ПолучитьКодВозврата(): Число?
Доступность: Сервер |
Возвращает код возврата от внешнего процесса. Код 0
считается нормальным завершением внешнего процесса.
ПолучитьПотокВвода
ПолучитьПотокВвода(): ПотокЗаписи
Доступность: Сервер |
Чтобы процесс перестал ожидать входные данные, закройте полученный поток ввода.
Возвращает ПотокЗаписи для передачи входных данных в ПроцессОс.
Исключения
ИсключениеНедопустимоеСостояние - если метод вызван до запуска процесса.
Примеры
метод Grep(Вход: Строка, Фильтр: Строка): Строка
// Аналог команды grep в Windows. Требует входных данных
пер Процесс = новый ПроцессОс("cmd.exe", ["/c", "findstr %Фильтр"])
// Указать входные данные можно только после старта процесса
Процесс.Запустить()
пер Поток = Процесс.ПолучитьПотокВвода()
Поток.Записать(Вход)
// Даем понять, что входных данных процесс может больше не ожидать.
Поток.Закрыть()
возврат Процесс.ПолучитьПотокВывода().ПрочитатьКакСтроку()
;
ПолучитьПотокВывода
ПолучитьПотокВывода(): ПотокЧтения
Доступность: Сервер |
- Для передачи вывода одного процесса в другой используйте возможности конвейера (см.
ПередатьВыводВ()
).- Не требует закрытия.
Возвращает выходной поток из внешнего процесса. Используется для получения результата от процесса. В поток по умолчанию также пишутся ошибки, произошедшие во время работы процесса.
Для получения данных всего потока вывода, нужно дождаться завершения выполнения процесса (метод ОжидатьЗавершения(...)
).
Исключения
ИсключениеНедопустимоеСостояние - если метод вызван до запуска процесса.
ПолучитьПотокОшибок
ПолучитьПотокОшибок(): ПотокЧтения
Доступность: Сервер |
Не требует закрытия.
Возвращает поток ошибок процесса. Если потоки ошибок и вывода соединены, будет возвращен пустой поток.
Для получения данных всего потока вывода, нужно дождаться завершения выполнения процесса (метод ОжидатьЗавершения(...)
).
Исключения
ИсключениеНедопустимоеСостояние - если метод вызван до запуска процесса.