iopl() - Unix 和 Linux 系統呼叫 - 技術教學
Tutorials Point


  Unix 初學者指南
  Unix Shell 程式設計
  高階 Unix
  Unix 有用參考
  Unix 有用資源
  精選閱讀

版權所有 © 2014 tutorialspoint



  首頁     參考     討論論壇     關於 TP  

iopl() - Unix 和 Linux 系統呼叫


previous next AddThis Social Bookmark Button

廣告

名稱

iopl - 更改 I/O 許可權級別

語法

#include <sys/io.h>

int iopl(int level);

描述

iopl() 更改當前程序的 I/O 許可權級別,如level中指定。

此呼叫對於允許 8514 相容的 X 伺服器在 Linux 下執行是必要的。由於這些 X 伺服器需要訪問所有 65536 個 I/O 埠,因此ioperm() 呼叫是不夠的。

除了授予不受限制的 I/O 埠訪問許可權外,在更高的 I/O 許可權級別執行還允許程序停用中斷。這可能會導致系統崩潰,因此不建議使用。

許可權由fork() 和exec() 繼承。

普通程序的 I/O 許可權級別為 0。

此呼叫主要用於 i386 架構。在許多其他架構上,它不存在或始終返回錯誤。

返回值

成功時,返回零。發生錯誤時,返回 -1,並且errno被相應地設定。

錯誤

標籤描述
EINVAL level 大於 3。
ENOSYS 此呼叫未實現。
EPERM 呼叫程序沒有足夠的許可權來呼叫iopl();需要CAP_SYS_RAWIO 許可權。

符合標準

iopl() 是 Linux 特定的,不應在打算移植的程序中使用。

備註

Libc5 將其視為系統呼叫,並在<unistd.h>中有一個原型。Glibc1 沒有原型。Glibc2 在<sys/io.h><sys/perm.h>中都有原型。避免後者,它僅在 i386 上可用。

參見



previous next Printer Friendly

廣告


  

廣告



廣告
© . All rights reserved.