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

廣告


  

廣告



廣告
© . All rights reserved.