- bookworm 4.18.1-1
- bookworm-backports 4.24.0-2~bpo12+1
- testing 4.24.0-2
- unstable 4.24.0-2
ioperm(2) | System Calls Manual | ioperm(2) |
ИМЯ¶
ioperm - устанавливает права на работу с портами ввода/вывода
LIBRARY¶
Standard C library (libc, -lc)
СИНТАКСИС¶
#include <sys/io.h>
int ioperm(unsigned long from, unsigned long num, int turn_on);
ОПИСАНИЕ¶
Вызов ioperm() устанавливает num бит прав доступа вызывающей нити, начиная с адреса порта from. Если turn_on не равно 0, то права для указанных битов устанавливаются, иначе сбрасываются. Если turn_on не равно 0, вызывающая нить должна быть привилегированной (CAP_SYS_RAWIO).
До Linux 2.6.8, можно было указывать только первые 0x3ff портов ввода-вывода. Для остальных портов нужно было использовать системный вызов iopl(2) (с аргументом level равным 3). Начиная с Linux 2.6.8, можно указывать 65536 портов ввода-вывода.
Права наследуются дочерним процессом, созданным fork(2) (но смотрите ЗАМЕЧАНИЯ). Права сохраняются при вызове execve(2); это полезно для предоставления доступа к портам ввода-вывода непривилегированным программам.
Данный вызов, в основном, предназначен для архитектуры i386. На большинстве других архитектур он не существует или будет возвращать ошибку.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ¶
On success, zero is returned. On error, -1 is returned, and errno is set to indicate the error.
ОШИБКИ¶
СТАНДАРТЫ¶
Вызов ioperm() есть только в Linux. Он не должен использоваться в переносимых программах.
ЗАМЕЧАНИЯ¶
В /proc/ioports показываются все порты ввода-вывода, которые выделены в системе в настоящий момент.
До Linux 2.4 права не наследовались потомком, созданным fork(2).
glibc has an ioperm() prototype both in <sys/io.h> and in <sys/perm.h>. Avoid the latter, it is available on i386 only.
СМ. ТАКЖЕ¶
ПЕРЕВОД¶
Русский перевод этой страницы руководства был сделан Azamat Hackimov <azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3 или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на man-pages-ru-talks@lists.sourceforge.net.
5 февраля 2023 г. | Linux man-pages 6.03 |