ioctl

出典: フリー百科事典『ウィキペディア(Wikipedia)』

計算機科学におけるioctlIPA: [aɪˈɒktəl] またはアイ・オー・コントロール)とは、主にUNIXライクなオペレーティングシステム上で、アプリケーションデバイスドライバを制御したり、デバイスドライバと通常のデータの読み書きの流れの外で通信するために用意されたシステムコールのことである。AT&TUnix version 7 に実装されたのが起源である。また、名前は I/O control の略に由来している。

UNIXにおける ioctl は少なくとも次の2つのパラメータを受け取ることになっている。

  1. 有効なファイルディスクリプタ
  2. ioctl リクエスト番号

リクエスト番号とは、デバイスドライバに対する個々の操作に割り当てられた番号である。

リクエストの種類によっては、ioctlは上の2つに加えて次の引数のいずれかを受け取ることがある。

カーネルは、これらのパラメータを、特別な解釈を加えたりせずにそのままデバイスドライバに伝えるのが一般的である。デバイスドライバの作者はリクエスト番号についての説明を記すとともに、番号を定数としてヘッダファイルに記述する。いくつかのシステムではリクエスト番号のパラメータとして、実際のリクエスト番号と渡されるデータのサイズを多重化したものを用いる慣習がある。