ioctl
1. ioctl.2.man
Manpage of IOCTL
IOCTL
Section: Linux Programmer's Manual (2)Updated: 2000-09-21
Index Return to Main Contents
名前
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() の引き数、返り値、解釈は、処理対象のデバイス・ドライバごとに 異なる(この関数は 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: 17:13:43 GMT, January 19, 2012




