.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2007 Michael Kerrisk .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" 2007-10-23 mtk: moved the _syscallN specific material to the .\" new _syscall(2) page, and substantially enhanced and rewrote .\" the remaining material on this page. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH intro 2 "5 февраля 2023 г." "Linux man\-pages 6.05.01" .SH ИМЯ intro \- введение в системные вызовы .SH ОПИСАНИЕ В разделе 2 описываются системные вызовы Linux. Системный вызов — это точка входа в ядро Linux. Обычно, системные вызовы не запускаются напрямую, вместо этого почти все системные вызовы имеют соответствующие обёрточные функции в библиотеке C, которая выполняет некоторые действия (например, подготовку к работе в режиме ядра) для запуска системного вызова. Таким образом, работа с системным вызовом выглядит также как вызов обычной библиотечной функции. .PP Во многих случаях обёрточная функция библиотеки C делает не более чем: .IP \[bu] 3 копирует аргументы и уникальный номер системного вызова в регистры, где ядро ожидает их найти, и затем; .IP \[bu] передаёт управление в режим ядра в место, где ядро выполняет всю работу системным вызовом; .IP \[bu] изменяет \fIerrno\fP, если системный вызов вернул номер ошибки при возврате ядром ЦП в пользовательский режим. .PP Однако в некоторых случаях обёрточная функция может делать дополнительную работу, например, выполнять предварительную обработку аргументов до перехода в режим ядра и обработку значений, полученных от системного вызова. В этом случае в справочных страницах раздела 2, обычно, приводятся подробности программного интерфейса библиотеки C (обычно GNU) и системного вызова. Чаще всего, в главном ОПИСАНИИ даётся интерфейс библиотеки C, а отличия системного вызова приводятся в разделе ЗАМЕЧАНИЯ. .PP Список системных вызовов Linux можно найти в \fBsyscalls\fP(2). .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" В случае ошибки большинство системных вызовов возвращает отрицательное число (т.е., отрицательное значение одной из констант, описанных в \fBerrno\fP(3)). Обёртка в библиотеке C скрывает эту информацию от вызывающей стороны: когда системный вызов возвращает отрицательное значение, обёртка копирует абсолютное значение в переменную \fIerrno\fP и возвращает \-1 в качестве результата своей работы. .PP Значение результата успешной работы системного вызова зависит от вызова. Многие системные вызовы в этом случае возвращают 0, а некоторые могут вернуть ненулевое значение. Подробно об этом написано в справочной странице самого вызова. .PP В некоторых случаях программист должен определить макрос тестирования свойств, чтобы получить объявление системного вызова из заголовочного файла, указанного в справочной странице в разделе СИНТАКСИС. (Где необходимо, эти макросы тестирования свойств должны быть определены перед включением \fIкакого\-либо\fP заголовочного файла.) В таких случаях требуемый макрос описан в справочной странице. Подробней о макросах тестирования свойств написано в \fBfeature_test_macros\fP(7). .SH СТАНДАРТЫ Для обозначение вариантов UNIX и разнообразных стандартов, которым соответствуют системные вызовы, описанные в этом разделе, используются различные сокращения. См. \fBstandards\fP(7). .SH ЗАМЕЧАНИЯ .SS "Непосредственный вызов" В большинстве случаев, не требуется запускать системный вызов напрямую, но иногда в стандартной библиотеке C может не оказаться нужной обёрточной функции. В этом случае программист должен вручную выполнить системный вызов с помощью \fBsyscall\fP(2). Исторически, также осталось возможно сделать с помощью макросов _syscall, описанных в \fB_syscall\fP(2). .SS "Авторы и условия распространения" Авторы и условия распространения указаны в заголовке исходной справочной страницы. Заметим, что у разных страниц они могут быть разными! Список русских переводчиков для каждой страницы можно найти в .po файле в исходном коде пакета. .SH "СМ. ТАКЖЕ" .ad l .nh \fB_syscall\fP(2), \fBsyscall\fP(2), \fBsyscalls\fP(2), \fBerrno\fP(3), \fBintro\fP(3), \fBcapabilities\fP(7), \fBcredentials\fP(7), \fBfeature_test_macros\fP(7), \fBmq_overview\fP(7), \fBpath_resolution\fP(7), \fBpipe\fP(7), \fBpty\fP(7), \fBsem_overview\fP(7), \fBshm_overview\fP(7), \fBsignal\fP(7), \fBsocket\fP(7), \fBstandards\fP(7), \fBsymlink\fP(7), \fBsystem_data_types\fP(7), \fBsysvipc\fP(7), \fBtime\fP(7) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Azamat Hackimov , Dmitriy S. Seregin , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .