ioperm() - Unix, Linux系统调用
Tutorials Point


  Unix初学者指南
  Unix Shell编程
  高级Unix
  Unix有用参考
  Unix有用资源
  精选阅读

版权所有 © 2014 tutorialspoint



  首页     参考资料     讨论论坛     关于TP  

ioperm() - Unix, Linux系统调用


previous next AddThis Social Bookmark Button

广告

名称

ioperm - 设置端口输入/输出权限

概要

#include <unistd.h> /* 用于libc5 */
#include <sys/io.h> /* 用于glibc */

int ioperm(unsigned long from, unsigned long num, int turn_on);

描述

ioperm 为进程设置从端口地址 from 开始的 num 字节的端口访问权限位,值为 turn_on。使用 ioperm() 需要root权限。

只能以这种方式指定前0x3ff个I/O端口。对于更多端口,必须使用 iopl() 函数。权限不会在 fork() 上继承,而是在 exec() 上继承。这对于向非特权任务授予端口访问权限很有用。

此调用主要用于i386架构。在许多其他架构上,它不存在或将始终返回错误。

返回值

成功时,返回零。发生错误时,返回 -1,并适当地设置 errno

错误

标签描述
EINVAL fromnum 的值无效。
EIO (在ppc上) 此调用不受支持。
EPERM 调用进程没有足够的权限来调用 ioperm();需要 CAP_SYS_RAWIO 权限。

符合标准

ioperm() 是 Linux 特定的,不应在旨在可移植的程序中使用。

备注

Libc5 将其视为系统调用,并在 <unistd.h> 中具有原型。Glibc1 没有原型。Glibc2 在 <sys/io.h><sys/perm.h> 中都有原型。避免后者,它仅在i386上可用。

参见



previous next Printer Friendly

广告


  

广告



广告