Программист учел проблемы в предыдущей версии функции
exec_and_get_output
(см. историю Что-что вы сказали?).
Он решил все переделать
и воспользоваться функцией open с тремя аргументами.
Вот новая версия:
И что бы вы думали? Теперь функция не умирает
в некоторых случаях, когда должна.
Дело в том, что open, который используется для запуска
внешней программы, возвращает ложное значение
только в том случае, если внешнюю программу
не удалось запустить.
Напрмер, файл не существует или на нем нет флага исполнимости.
Для того, чтобы получить и проверить код завершения
внешней программы, следует закрыть (close)
соответствующий файл-хендлер: