table of contents
- Tumbleweed 4.28.0-1.1
- Leap-16.0
- Leap-15.6
| ioperm(2) | System Calls Manual | ioperm(2) |
НАИМЕНОВАНИЕ¶
ioperm - устанавливает права на работу с портами ввода/вывода
БИБЛИОТЕКА¶
Стандартная библиотека языка C (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 портов ввода-вывода.
Permissions are inherited by the child created by fork(2) (but see HISTORY). Permissions are preserved across execve(2); this is useful for giving port access permissions to unprivileged programs.
Данный вызов, в основном, предназначен для архитектуры i386. На большинстве других архитектур он не существует или будет возвращать ошибку.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ¶
При успешном выполнении возвращается 0. При ошибке возвращается -1, а в errno содержится код ошибки.
ОШИБКИ¶
ВЕРСИИ¶
glibc имеет прототип ioperm() как в <sys/io.h>, так и в <sys/perm.h>. Избегайте последнего, он доступен только на i386.
СТАНДАРТЫ¶
Linux.
ИСТОРИЯ¶
До Linux 2.4 права не наследовались потомком, созданным fork(2).
ПРИМЕЧАНИЯ¶
В /proc/ioports показываются все порты ввода-вывода, которые выделены в системе в настоящий момент.
СМОТРИТЕ ТАКЖЕ¶
ПЕРЕВОД¶
Русский перевод этой страницы руководства разработал(и) 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 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков.
| 17 мая 2025 г. | Справочные страницы Linux (невыпущенные) |