Provided by: manpages-ru_4.27.0-1_all bug

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

       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 или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

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

Справочные страницы Linux 6.9.1                   2 мая 2024 г.                                         intro(2)