Главная » 2017 » Ноябрь » 19 » man 2 intro
22:37
man 2 intro

SEO sprint - Всё для максимальной раскрутки!





ИМЯ


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).



ЗАМЕЧАНИЯ


Непосредственный вызов
для каждой страницы можно найти в .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), svipc(7), symlink(7), time(7)



Категория: (2) Системные вызовы ядра (функции языка Си) | Просмотров: 386 | Добавил: Администратор | Рейтинг: 0.0/0
Всего комментариев: 0
avatar