14.9.3. Получение и установка кодов завершения

14.9.3. Получение и установка кодов завершения

Метод exit возбуждает исключение SystemExit и в конечном счете возвращает указанный код завершения операционной системе (или тому, кто его вызвал). Этот метод определен в модуле Kernel. Метод exit! отличается от него в двух отношениях: он не выполняет зарегистрированные обработчики завершения и по умолчанию возвращает -1.

# ...

if (all_OK)

 exit # Нормально (0).

else

 exit! # В спешке (-1).

end

Когда операционная система печатает возвращенный Ruby код (например, выполнив команду echo $?), мы видим то же самое число, что было указано в программе. Если завершается дочерний процесс, то код его завершения, полученный с помощью метода wait2 (или waitpid2), будет сдвинут влево на восемь битов. Это причуда стандарта POSIX, которую Ruby унаследовал.

child = fork { sleep 1; exit 3 }

pid, code = Process.wait2 # [12554,768]

status = code << 8 #3

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

13.1.3 Получение сетевого адреса и установка ПО

Из книги Linux для пользователя автора Костромин Виктор Алексеевич

13.1.3 Получение сетевого адреса и установка ПО Поскольку вы собираетесь устанавливать машину с Linux в уже существующую сеть, то следующим вашим шагом при подключении к сети должно стать обращение к администратору сети за получением сетевого адреса. Точнее, вы должны


ICQ: установка и получение собственного номера. Обмен сообщениями

Из книги Работа в Интернете автора Макарский Дмитрий

ICQ: установка и получение собственного номера. Обмен сообщениями Аббревиатура ICQ имеет англоязычное происхождение. Строго говоря, это не совсем аббревиатура. Просто данное сочетание букв произносится так же, как и английское словосочетание I seek you – «Я ищу тебя».


Роль кодов операций CIL

Из книги Язык программирования С# 2005 и платформа .NET 2.0. [3-е издание] автора Троелсен Эндрю

Роль кодов операций CIL После определения компоновочного блока .NET, пространства имен и набора типов в терминах GIL с использованием различных директив и связанных атрибутов остается одно – предложить программную логику реализации типа. Это является задачей кодов


Анализ кодов операций CIL

Из книги Программирование на языке Ruby [Идеология языка, теория и практика применения] автора Фултон Хэл

Анализ кодов операций CIL Заключительной темой нашего обсуждения в этой главе в отношении программного кода CIL будет роль кодов операций. Напомним, что код операции – это просто лексема CIL, используемая для построения логики реализации данного члена. Полный набор кодов


10.1.10. Получение и установка временных штампов

Из книги C++. Сборник рецептов автора Диггинс Кристофер

10.1.10. Получение и установка временных штампов С каждым файлом на диске связано несколько временных штампов (в разных операционных системах они различны). Ruby понимает три таких штампа: время модификации (когда в последний раз было изменено содержимое файла), время доступа


11.3.4. Получение и установка переменных экземпляра

Из книги Руководство по переходу на Ubuntu 10.04 LTS «Lucid Lynx» автора Неворотин Вадим

11.3.4. Получение и установка переменных экземпляра Отвечая на пожелание употреблять eval как можно реже, в Ruby теперь включены методы, которые могут получить или присвоить новое значение переменной экземпляра, имя которой задано в виде строки:class MyClass attr_reader :alpha, :beta def


1.1. Получение и установка GCC

Из книги Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ автора Борри Хелен

1.1. Получение и установка GCC ПроблемаВы хотите получить GCC — свободно распространяемый компилятор GNU C/С++.РешениеРешение зависит от вашей операционной системы.WindowsУстановите MinGW, Cygwin или оба.Чтобы установить MinGW, посетите страницу MinGW по адресу www.mingw.org и проследуйте по


Часть I Получение копии дистрибутива и установка Ubuntu

Из книги Язык Си - руководство для начинающих автора Прата Стивен

Часть I Получение копии дистрибутива и установка Ubuntu Глава 2 Получение дистрибутива Ubuntu Ubuntu распространяется абсолютно бесплатно, поэтому проще всего получить свою копию этой системы через интернет. Подробнее об этом чуть ниже. Однако если по каким-либо причинам у вас


Модули внешних кодов

Из книги автора

Модули внешних кодов Firebird может расширить свои возможности путем доступа к определенным пользователям подпрограммам, написанным на включающем языке программирования и скомпилированным во внешние библиотеки общего доступа. Этот раздел содержит рассмотрение некоторых


Дерево исходных кодов ядра

Из книги автора

Дерево исходных кодов ядра Дерево исходных кодов ядра содержит ряд каталогов, большинство из которых также содержит подкаталоги. Каталоги, которые находятся в корне дерева исходных кодов, и их описание приведены в табл. 2.1.Таблица 2.1. Каталоги в корне дерева исходных


Использование дерева каталогов исходных кодов ядра

Из книги автора

Использование дерева каталогов исходных кодов ядра В идеале модуль является частью официального ядра и находится в каталоге исходных кодов ядра. Введение вашей разработки непосредственно в ядро может вначале потребовать больше работы, но обычно такое решение более


Компиляция вне дерева исходных кодов ядра

Из книги автора

Компиляция вне дерева исходных кодов ядра Если вы предпочитаете разрабатывать и поддерживать ваш модуль отдельно от дерева исходных кодов ядра и жить жизнью аутсайдера, просто создайте файл Makefile следующего вида в том каталоге, где находится модуль.obj-m := fishing.oТакая