ioperm - устанавливает права на работу с портами ввода/вывода
СИНТАКСИС
#include <unistd.h>
/* для libc5 */
#include <sys/io.h>
/* для glibc */
int ioperm(unsigned long from, unsigned long num, int turn_on);
ОПИСАНИЕ
Ioperm устанавливает права доступа процесса к портам ввода-вывода num,
начиная с порта from. Для использования функции
ioperm необходимы права root.
Таким образом, можно задать права доступа только к первым портам 0x3ff.
Для работы с другими портами необходимо использовать функцию
iopl .
Права не наследуются по fork, но наследуются по exec. Это
можно использовать для предоставления доступа к портам ввода-вывода
непривилегированным процессам.
ВОЗВРАЩАЕМЫЕ ЗНАЧЕНИЯ
При удачном завершении вызова возвращаемое значение равно 0. При ошибке оно равно
-1, а переменная
errno
приобретает соответствующее значение.
СООТВЕТСТВИЕ СТАНДАРТАМ
ioperm - это функция, специфичная для Linux. Не рекомендуется
использовать ее в программах, переносимых на
другие системы.
ЗАМЕЧАНИЯ
Libc5 рассматривает данную функцию как системный вызов, и поэтому в
<unistd.h>
есть ее прототип.
В Glibc1 этого прототипа нет. В Glibc2, в
<sys/io.h>
и в
<sys/perm.h>
этот прототип есть.
Не используйте второй вариант, он существует только в версии i386.