HOME > Linux Tips ( 目次 ) > Linux コマンド 一覧表 > i > ioctl - システムコールの説明

ioctl - システムコールの説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. 返り値
  5. エラー
  6. 注意
  7. 準拠
  8. 関連項目

名前

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 が参照する種類のオブジェクトには適用することができない。

注意

このシステムコールを使うには、オープンされたファイル・ディスクリプタが 必要である。しばしば   open (2) コールは望んでいない副作用を伴うことがあるが、Linux では   open (2) に O_NONBLOCK フラグをつけることでこの副作用を避けることができる。

準拠

どれか一つの標準に対応しているわけではない。 ioctl (2) の引き数、返り値、解釈は、処理対象のデバイス・ドライバごとに 異なる(この関数は Unix の ストリーム I/O モデル に 明らかに適合しない様々な操作に使用される)。 よく知られている ioctl ()のリストについては   ioctl_list (2) を参照すること。 ioctl ()関数コールは Version 7 AT&T Unix で登場した。

関連項目

Linux Tips 関連記事
Linux Tips(目次)
Linux ディストリビューション一覧
rpm のファイル名にあるi386とかi686とは
自分のマシンの情報を調べる
cron の設定
ssh の root ログインを禁止する
ssh を、ユーザ、IPでアクセス制限
鍵交換方式によるssh接続
鍵交換方式によるssh接続( windowsから )
複数ファイル内の文字列を置換して上書き保存する
あるグループをイニシャルグループとするユーザー一覧出力
複数ファイルのファイル名を一括変換する
連番ファイルをコマンド一発で作成する
中身がランダムなファイルを任意のサイズで作成する
Linux ユーザーアカウントをロック・アンロックする