ВСТУП(2) Підручник програміста Linux ВСТУП(2)

НАЗВА

intro — вступ до системних викликів

ОПИС

Section 2 of the manual describes the Linux system calls. A system call is an entry point into the Linux kernel. Usually, system calls are not invoked directly: instead, most system calls have corresponding C library wrapper functions which perform the steps required (e.g., trapping to kernel mode) in order to invoke the system call. Thus, making a system call looks the same as invoking a normal library function.

У більшості випадків функція-обгортка бібліотеки C не виконує ніяких додаткових дій, окрім:

  • копіювання аргументів та унікального числа системного виклику до регістрів, де на них очікує ядро;
  • створення пастки для режиму ядра на місці, де ядро виконує обробку системного виклику;
  • встановлення errno, якщо системний виклик повертає номер помилки, коли ядро повертає процесор у режим обробки команд користувача.

However, in a few cases, a wrapper function may do rather more than this, for example, performing some preprocessing of the arguments before trapping to kernel mode, or postprocessing of values returned by the system call. Where this is the case, the manual pages in Section 2 generally try to note the details of both the (usually GNU) C library API interface and the raw system call. Most commonly, the main DESCRIPTION will focus on the C library interface, and differences for the system call are covered in the NOTES section.

Список системних викликів Linux можна знайти на сторінці підручника syscalls(2).

ПОВЕРНУТЕ ЗНАЧЕННЯ

On error, most system calls return a negative error number (i.e., the negated value of one of the constants described in errno(3)). The C library wrapper hides this detail from the caller: when a system call returns a negative value, the wrapper copies the absolute value into the errno variable, and returns -1 as the return value of the wrapper.

The value returned by a successful system call depends on the call. Many system calls return 0 on success, but some can return nonzero values from a successful call. The details are described in the individual manual pages.

У деяких випадках програмісту слід визначити макрос перевірки наявності можливостей для отримання оголошення системного виклику з файла заголовків, вказаного у розділі КОРОТКИЙ ОПИС сторінки підручника. (Де це потрібно, цей макрос перевірки наявності можливостей має бути визначено до включення будь-яких файлів заголовків.) У таких випадках потрібний макрос описано на відповідній сторінці підручника. Щоб дізнатися більше про макроси перевірки наявності можливостей, зверніться до сторінки feature_test_macros(7).

ВІДПОВІДНІСТЬ

У цьому розділі у викликах використано певні терміни та скорочення, які позначають варіанти і стандарти UNIX. Див. standards(7).

ПРИМІТКИ

Безпосередній виклик

In most cases, it is unnecessary to invoke a system call directly, but there are times when the Standard C library does not implement a nice wrapper function for you. In this case, the programmer must manually invoke the system call using syscall(2). Historically, this was also possible using one of the _syscall macros described in _syscall(2).

Автори і умови авторських прав

Дані щодо авторів і умов авторських прав наведено у заголовку початкового коду сторінки підручника. Зауважте, що для різних сторінок ці дані можуть бути різними!

ДИВ. ТАКОЖ

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

ПІСЛЯМОВА

Ця сторінка є частиною випуску 5.13 проєкту man-pages Linux. Опис проєкту, дані щодо звітування про вади та найсвіжішу версію цієї сторінки можна знайти за адресою https://www.kernel.org/doc/man-pages/.

ПЕРЕКЛАД

Український переклад цієї сторінки посібника виконано Yuri Chornoivan <yurchor@ukr.net>

Цей переклад є безкоштовною документацією; будь ласка, ознайомтеся з умовами GNU General Public License Version 3. НЕ НАДАЄТЬСЯ ЖОДНИХ ГАРАНТІЙ.

Якщо ви знайшли помилки у перекладі цієї сторінки підручника, будь ласка, надішліть електронний лист до списку листування перекладачів: trans-uk@lists.fedoraproject.org.

27 серпня 2021 року Linux