Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all bug

名前

       ioctl - デバイスを制御する

書式

       #include <sys/ioctl.h>

       int ioctl(int d, int request, ...);

説明

       ioctl()   関数はスペシャルファイルを構成するデバイスのパラメータを 操作する。特に、キャラクタ型のスペシャ
       ルファイル  (例えば端末  (terminal))   の多くの動作特性を  ioctl()   リクエストによって制御することができ
       る。引き数 d はオープンされたファイルディスクリプタでなければならない。

       2 番目の引き数は、デバイス依存のリクエストコードである。 3 番目の引き数は、メモリへの型を指定しないポイン
       タである。  この引き数は伝統的に  (C で void * という書き方が有効になる前から)  char *argp と表記されてい
       る。したがって、この文章でもそう名付けることとする。

       ioctl()  の request には、 その引き数が 入力 パラメータと 出力 パラメータのどちらであるかの区別や、  argp
       引き数のバイト単位のサイズ、といった情報がエンコードされている。 ioctl()  の request を指定するためのマク
       ロ (macro) と定義は <sys/ioctl.h> ファイルにある。

返り値

       たいていの場合、成功するとゼロが返される。 ただし、 ioctl()  リクエストの中にはパラメータの出力に返り値を
       使用しているものが若干あり、  その場合は、成功したときに非負の値が返される。 エラーの場合は -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)

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクトの説明とバグ報告
       に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。

Linux                                              2000-09-21                                           IOCTL(2)