Значение errno

Значение errno

При возникновении ошибки в функции Unix глобальной переменной errno присваивается положительное значение, указывающее на тип ошибки; при этом функция обычно возвращает значение –1. Наша функция err_sys выводит соответствующее коду ошибки сообщение (например, Resource temporarily unavailable — ресурс временно недоступен, — если переменная errno имеет значение EAGAIN).

Функция присваивает значение переменной errno только при возникновении ошибки. В случае нормального завершения работы значение этой переменной не определено. Все положительные значения соответствуют константам с именами из заглавных букв, начинающимися с Е, определяемым обычно в заголовочном файле <sys/errno.h>. Отсутствию ошибок соответствует значение 0. 

При работе с несколькими потоками в каждом из них должна быть собственная переменная errno. Выделение переменной каждому потоку происходит автоматически, однако обычно это требует указания компилятору на то, что должна быть возможность повторного входа в программу. Задается это с помощью ключей –D_REENTRANT или –D_POSIX_C_SOURCE=199506L или аналогичных. Часто в заголовке <errno.h> переменная errno определяется как макрос, раскрываемый в вызов функции, если определена константа _REENTRANT. Функция обеспечивает доступ к копии errno, относящейся к данному потоку.

Далее в тексте мы используем выражения наподобие «функция mq_send возвращает EMSGSIZE», означающие, что функция возвращает ошибку (обычно возвращаемое значение при этом равно –1) и присваивает переменной errno значение указанной константы.

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

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

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

Значение имеет

Из книги Блеск и нищета информационных технологий. Почему ИТ не являются конкурентным преимуществом автора Карр Николас Дж.


1.9. Подход также имеет значение

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

1.9. Подход также имеет значение Когда верное решение очевидно, его следует немедленно использовать — данный подход может показаться работоспособным только в краткосрочной перспективе, однако это путь наименьших усилий в продолжительном периоде. Если не известно, какое


4.2.5. Значение освобождения

Из книги Самоучитель работы на компьютере автора Колисниченко Денис Николаевич

4.2.5. Значение освобождения В начале данной книги упоминалась ссылка на Дзэн об "особой передаче знаний вне священного писания". Не следует рассматривать ее как экзотическую, использованную ради стилистического эффекта. Основные понятия Unix всегда отличались свободной,


14.5.2. Значение ячейки

Из книги Баннер — это просто автора Великий Андрей Андреевич

14.5.2. Значение ячейки Как и в случае с Word, просто начинайте вводить текст или числа. Не беспокойтесь, что введенное вами значение выходит за рамки ячейки — это поправимо. Для изменения ширины ячейки ухватитесь за границу колонки и перемещайте ее, пока не измените размер


Размер баннера имеет значение

Из книги Искусство программирования для Unix автора Реймонд Эрик Стивен

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


4.2.5. Значение освобождения

Из книги Основы объектно-ориентированного программирования автора Мейер Бертран

4.2.5. Значение освобождения В начале данной книги упоминалась ссылка на Дзэн об "особой передаче знаний вне священного писания". Не следует рассматривать ее как экзотическую, использованную ради стилистического эффекта. Основные понятия Unix всегда отличались свободной,


Значение void

Из книги О чём не пишут в книгах по Delphi автора Григорьев А. Б.

Значение void Получить пустую ссылку достаточно просто - при инициализации по умолчанию все ссылки пусты. Однако удобно иметь специальное имя для ссылки, доступной в любом контексте и имеющей значение void . Предопределенный компонентVoidиграет эту роль.Обычно компонент Void


3.2.6. "Неправильное" значение

Из книги Внедрение SAP R/3: Руководство для менеджеров и инженеров автора Кале Вивек

3.2.6. "Неправильное" значение Самый первый "подводный камень", на котором спотыкаются новички — это то, что вещественная переменная может получить не совсем то значение, которое ей присвоено. Рассмотрим это на простом примере (листинг 3.9, примеp WrongValue на


Значение SAP R/3

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

Значение SAP R/3 В оставшейся части этой главы я опишу выдающиеся свойства и преимущества системы SAP R/3 как ERP-системы. Хотя это и не было предметом обсуждения в главе 2 «Оценка ERP» и главе 3 «Выбор ERP», после тщательной оценки и выбора ERP-системы станет ясно, что по всем критериям


8.2.4. Удаление пар ключ-значение

Из книги Разработка приложений в среде Linux. Второе издание автора Джонсон Майкл К.

8.2.4. Удаление пар ключ-значение Удалить пары ключ-значение из хэша можно с помощью методов clear, delete, delete_if, reject, reject! и shift.Метод clear удаляет из хэша все пары. Эффект такой же, как от присваивания переменной нового пустого хэша, но работает чуть быстрее.Метод shift удаляет


22.1. Когда безопасность имеет значение?

Из книги VBA для чайников автора Каммингс Стив

22.1. Когда безопасность имеет значение? Компьютерные программы — это очень сложные вещи. Даже самая простая программа "Hello World" является на удивление запутанной. Игнорируя все, что происходит в ядре, библиотека С должна отыскать соответствующие совместно используемые


Время имеет значение

Из книги Photoshop CS4 автора Жвалевский Андрей Валентинович

Время имеет значение Буквальные значения времени вводятся в формате #часы:минуты:секунды символ#, где символ - это AM или РМ (означающие до полудня и после полудня соответственно). Например:#10:45:00 РМ##2:3:30 АМ#Печатать незначащие нули, как в #01:02:03 РМ#, не обязательно, но VBA добавит


Глава 4 Размер имеет значение

Из книги Linux программирование в примерах автора Роббинс Арнольд

Глава 4 Размер имеет значение • Лучше меньше, да… меньше• Какой формат выбрать• Искусство оптимизацииЭта глава предназначена прежде всего для тех, кто пересылает цифровые фотографии по электронной почте или выкладывает их на сайте. В этих ситуациях файлы должны быть


4.3.1. Значения errno

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

4.3.1. Значения errno Стандарт POSIX 2001 определяет большое число возможных значений для errno. Многие из них относятся к сетям, IPC или другим специальным задачам. Справочная страница для каждого системного вызова описывает возможные значения errno, которые могут иметь место; поэтому


Значение системной переменной Unix errno

Из книги Разработка ядра Linux автора Лав Роберт

Значение системной переменной Unix errno Когда при выполнении функции Unix (например, одной из функций сокетов) происходит ошибка, глобальной переменной errno присваивается положительное значение, указывающее на тип ошибки, а возвращаемое значение функции обычно равно -1. Наша


Идеальное значение параметра HZ

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

Идеальное значение параметра HZ Для аппаратной платформы i386, начиная с самых первых версий операционной системы Linux, значение частоты системного таймера было равно 100 Гц. Однако во время разработки ядер серии 2.5 это значение было увеличено до 1000 Гц, что (как всегда бывает в