Unix-system-calls-ioperm

提供:Dev Guides
移動先:案内検索

[top]#

|http://www.google.com/[Google] | a|

Web This Site
  • 初心者向けのUnix *
  • 高度なUnix *

選択した読書

Copyright©2014 by finddevguides

[cols=",,,,,,,",]

| |  Home   | |  References   | |  Discussion Forums   | |  About TP  

[width="100%",cols="100%",]

a| == ioperm()-Unix、Linuxシステムコール

[[File:]] image :http://www.finddevguides.com/images/next.gif [next] image:http://www.finddevguides.com/add- this.gif [AddThisソーシャルブックマークボタン]

広告

NAME

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_が適切に設定されます。

エラー

Tag Description
EINVAL Invalid values for from or num.
EIO (on ppc) This call is not supported.
*EPERM * The calling process has insufficient privilege to call* ioperm*(); the CAP_SYS_RAWIO capability is required.

準拠

*ioperm* ()はLinux固有であり、移植を目的としたプログラムでは使用しないでください。

ノート

Libc5はそれをシステムコールとして扱い、_ <unistd.h> にプロトタイプを持っています。 Glibc1にはプロトタイプがありません。 Glibc2には、 <sys/io.h> <sys/perm.h> _の両方にプロトタイプがあります。 後者は避けてください。i386でのみ利用可能です。

関連項目

[[File:]] image :http://www.finddevguides.com/images/next.gif [next] [[File:]]

広告

|  

[cols="^",]

|Advertisements