IOCTL
Section: Linux Programmer's Manual (2)
Updated: 2000-09-21
Index
JM Home Page
roff page
名前
ioctl - デバイス (device) を制御する
書式
#include <sys/ioctl.h>
int ioctl(int d, int request, ...);
説明
ioctl()
関数はスペシャル・ファイルを構成するデバイスのパラメータを
操作する。特に、キャラクタ型のスペシャル・ファイル(例えば端末(terminal))
の多くの操作可能な特性を
ioctl()
リクエストによって制御することができる。引き数
d
はオープンされたファイル・ディスクリプタでなければならない。
2番目の引き数は、デバイス依存のリクエスト・コードである。
3番目の引き数は、メモリへの型を指定しないポインタである。
この引き数は伝統的に(C で
void *
が有効になる前から)
char *argp
と表記されている。したがって、この文章でもそのように名付けることとする。
ioctl()
request
には、以下の情報をバイト数でエンコードする:
(1)引き数が
入力
パラメータか
出力
パラメータのどちらかであるか、
(2)
argp
の大きさ。
ioctl()
request
を指定するためのマクロ(macro)と定義は
<sys/ioctl.h>
ファイルにある。
返り値
ioctl()
requests use the return value as an output parameter
たいていの場合、成功した場合はゼロが返される。
いくつかの
ioctl()
要求では出力パラメータとして返り値を使用していたり、
成功した場合に非 0 の値を返したりする。
エラーの場合は -1 が返され、
errno
が適切に設定される。
エラー
- EBADF
-
d
が有効なディスクリプタではない。
- EFAULT
-
argp
がアクセス不可能なメモリを参照している。
- EINVAL
-
request
または
argp
が不正である。
- ENOTTY
-
d
がキャラクタ型のスペシャル・デバイスを参照していない。
- ENOTTY
-
指定されたリクエストはディスクリプタ
d
が参照する種類のオブジェクトには適用することができない。
準拠
どれか一つの標準に対応しているわけではない。
ioctl(2)
の引き数、返り値、解釈は、処理対象のデバイス・ドライバごとに
異なる(この関数は Unix の ストリーム I/O モデル に
明らかに適合しない様々な操作に使用される)。
よく知られている
ioctl()
のリストについては
ioctl_list(2)
を参照すること。
ioctl()
関数コールは Version 7 AT&T Unix で登場した。
注意
このシステムコールを使うには、オープンされたファイル・ディスクリプタが
必要である。しばしば
open(2)
コールは望んでいない副作用を伴うことがあるが、Linux では
open(2)
に
O_NONBLOCK
フラグをつけることでこの副作用を避けることができる。
関連項目
execve(2),
fcntl(2),
ioctl_list(2),
open(2),
sd(4),
tty(4)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- 準拠
-
- 注意
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:31:47 GMT, November 19, 2007