Программирование на языке Ruby
Шрифт:
Таким образом, можно добиться более-менее системно-независимого поведения
Упомяну еще метод
14.1.2. Перехват вывода программы
Простейший способ перехватить информацию, выведенную программой, — заключить команду в обратные кавычки, например:
Обобщенный ограничитель
Применение
Поскольку обратные кавычки — это на самом деле метод (в некотором смысле), то его можно переопределить. Изменим его так, чтобы он возвращал не одну строку, а массив строк. Конечно, при этом мы создадим синоним старого метода, чтобы его можно было вызвать.
Как видите, при таком определении изменяется также поведение ограничителя
В следующем примере мы добавили в конец команды конструкцию интерпретатора команд, которая перенаправляет стандартный вывод для ошибок в стандартный вывод:
Есть, конечно, и много других способов изменить стандартное поведение обратных кавычек.
14.1.3. Манипулирование процессами
В этом разделе мы обсудим манипулирование процессами, хотя создание нового процесса необязательно связано с запуском внешней программы. Основной способ создания нового процесса — это метод
Метод
Существуют два способа вызвать метод
В этом не слишком реалистичном примере выводимые строки могут чередоваться, а может случиться и так, что строки, выведенные родителем, появятся раньше. Но сейчас это несущественно.
Следует также отметить, что процесс-потомок может пережить своего родителя. Для потоков в Ruby это не так, но системные процессы — совсем другое дело.
Во втором варианте вызова метод
Конечно, pid по-прежнему возвращается, мы просто не показали его.
Чтобы дождаться завершения процесса, мы можем вызвать метод
Разгон
Проза:
современная проза
рейтинг книги
Облава на волка
Детективы:
боевики
рейтинг книги
Ахтимаг
Фантастика:
фэнтези
детективная фантастика
рейтинг книги
Кодекс Охотника. Книга XII
12. Кодекс Охотника
Фантастика:
боевая фантастика
городское фэнтези
аниме
рейтинг книги
Крылатый воин
30. Вечный капитан
Фантастика:
попаданцы
рейтинг книги
Мастер 6
6. Мастер
Фантастика:
боевая фантастика
попаданцы
аниме
рейтинг книги
Я до сих пор не царь. Книга XXVII
27. Дорогой барон!
Фантастика:
юмористическое фэнтези
аниме
попаданцы
рейтинг книги
Вечный. Книга IV
4. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
рейтинг книги
Громовая поступь. Трилогия
Громовая поступь
Фантастика:
фэнтези
рпг
рейтинг книги
Дикарка Жасмин
6. Сага о Скай О`Малли
Любовные романы:
исторические любовные романы
рейтинг книги
Пограничная река. (Тетралогия)
Пограничная река
Фантастика:
фэнтези
боевая фантастика
рейтинг книги
Я граф. Книга XII
12. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
рейтинг книги
Глаза погребенных
Проза:
классическая проза
рейтинг книги