Man page - intro(2)

Packages contains this manual

Available languages:

en fr pt_BR es it pl sv ja uk ru ro de

Manual

intro

НАИМЕНОВАНИЕ
ОПИСАНИЕ
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
СТАНДАРТЫ
ПРИМЕЧАНИЯ
Непосредственный вызов
Авторы и условия распространения
СМОТРИТЕ ТАКЖЕ
ПЕРЕВОД

НАИМЕНОВАНИЕ

intro - введение в системные вызовы

ОПИСАНИЕ

В разделе 2 описываются системные вызовы Linux. Системный вызов — это точка входа в ядро Linux. Обычно, системные вызовы не запускаются напрямую, вместо этого почти все системные вызовы имеют соответствующие обёрточные функции в библиотеке C, которая выполняет некоторые действия (например, подготовку к работе в режиме ядра) для запуска системного вызова. Таким образом, работа с системным вызовом выглядит также как вызов обычной библиотечной функции.

Во многих случаях обёрточная функция библиотеки C делает не более чем:

копирует аргументы и уникальный номер системного вызова в регистры, где ядро ожидает их найти, и затем;

передаёт управление в режим ядра в место, где ядро выполняет всю работу системным вызовом;

изменяет errno , если системный вызов вернул номер ошибки при возврате ядром ЦП в пользовательский режим.

Однако в некоторых случаях обёрточная функция может делать дополнительную работу, например, выполнять предварительную обработку аргументов до перехода в режим ядра и обработку значений, полученных от системного вызова. В этом случае в справочных страницах раздела 2, обычно, приводятся подробности программного интерфейса библиотеки C (обычно GNU) и системного вызова. Чаще всего, в главном ОПИСАНИИ даётся интерфейс библиотеки C, а отличия системного вызова приводятся в разделе ЗАМЕЧАНИЯ.

Список системных вызовов Linux можно найти в syscalls (2).

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

В случае ошибки большинство системных вызовов возвращает отрицательное число (т.е., отрицательное значение одной из констант, описанных в errno (3)). Обёртка в библиотеке C скрывает эту информацию от вызывающей стороны: когда системный вызов возвращает отрицательное значение, обёртка копирует абсолютное значение в переменную errno и возвращает -1 в качестве результата своей работы.

Значение результата успешной работы системного вызова зависит от вызова. Многие системные вызовы в этом случае возвращают 0, а некоторые могут вернуть ненулевое значение. Подробно об этом написано в справочной странице самого вызова.

В некоторых случаях программист должен определить макрос тестирования свойств, чтобы получить объявление системного вызова из заголовочного файла, указанного в справочной странице в разделе СИНТАКСИС. (Где необходимо, эти макросы тестирования свойств должны быть определены перед включением какого-либо заголовочного файла.) В таких случаях требуемый макрос описан в справочной странице. Подробней о макросах тестирования свойств написано в feature_test_macros (7).

СТАНДАРТЫ

Для обозначение вариантов UNIX и разнообразных стандартов, которым соответствуют системные вызовы, описанные в этом разделе, используются различные сокращения. См. standards (7).

ПРИМЕЧАНИЯ

Непосредственный вызов

В большинстве случаев, не требуется запускать системный вызов напрямую, но иногда в стандартной библиотеке C может не оказаться нужной обёрточной функции. В этом случае программист должен вручную выполнить системный вызов с помощью syscall (2). Исторически, также осталось возможно сделать с помощью макросов _syscall, описанных в _syscall (2).

Авторы и условия распространения

Авторы и условия распространения указаны в заголовке исходной справочной страницы. Заметим, что у разных страниц они могут быть разными! Список русских переводчиков для каждой страницы можно найти в .po файле в исходном коде пакета.

СМОТРИТЕ ТАКЖЕ

_syscall (2), syscall (2), syscalls (2), errno (3), intro (3), capabilities (7), credentials (7), feature_test_macros (7), mq_overview (7), path_resolution (7), pipe (7), pty (7), sem_overview (7), shm_overview (7), signal (7), socket (7), standards (7), symlink (7), system_data_types (7), sysvipc (7), time (7)

ПЕРЕВОД

Русский перевод этой страницы руководства разработал(и) Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков .