Provided by: manpages-ja-dev_0.5.0.0.20161015+dfsg-1_all 

名前
ioctl - デバイスを制御する
書式
#include <sys/ioctl.h> int ioctl(int fd, unsigned long request, ...);
説明
ioctl() 関数はスペシャルファイルを構成するデバイスのパラメーターを 操作する。特に、キャラクター型のスペ シャルファイル (例えば端末 (terminal)) の多くの動作特性を ioctl() リクエストによって制御することができ る。引き数 fd はオープンされたファイルディスクリプターでなければならない。 2 番目の引き数は、デバイス依存のリクエストコードである。 3 番目の引き数は、メモリーへの型を指定しないポイ ンターである。 この引き数は伝統的に (C で void * という書き方が有効になる前から) char *argp と表記されて いる。したがって、この文章でもそう名付けることとする。 ioctl() の request には、 その引き数が 入力 パラメーターと 出力 パラメーターのどちらであるかの区別や、 argp 引き数のバイト単位のサイズ、といった情報がエンコードされている。 ioctl() の request を指定するため のマクロ (macro) と定義は <sys/ioctl.h> ファイルにある。
返り値
たいていの場合、成功するとゼロが返される。 ただし、 ioctl() リクエストの中にはパラメーターの出力に返り値 を使用しているものが若干あり、 その場合は、成功したときに非負の値が返される。 エラーの場合は -1 が返さ れ、 errno が適切に設定される。
エラー
EBADF fd が無効なディスクリプターである。 EFAULT argp がアクセス不可能なメモリーを参照している。 EINVAL request または argp が不正である。 ENOTTY fd がキャラクター型のスペシャルデバイスを参照していない。 ENOTTY 指定されたリクエストはディスクリプター fd が参照する種類のオブジェクトには適用することができない。
準拠
どれか一つの標準に対応しているわけではない。 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)
この文書について
この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告 に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。