ioctl
計算機科学におけるioctl (IPA: [aɪˈɒktəl] またはアイ・オー・コントロール)とは、主にUNIXライクなオペレーティングシステム上で、アプリケーションがデバイスドライバを制御したり、デバイスドライバと通常のデータの読み書きの流れの外で通信するために用意されたシステムコールのことである。AT&T の Unix version 7 に実装されたのが起源である。また、名前は I/O control の略に由来している。
UNIXにおける ioctl は少なくとも次の2つのパラメータを受け取ることになっている。
- 有効なファイルディスクリプタ
- ioctl リクエスト番号
リクエスト番号とは、デバイスドライバに対する個々の操作に割り当てられた番号である。
リクエストの種類によっては、ioctlは上の2つに加えて次の引数のいずれかを受け取ることがある。
カーネルは、これらのパラメータを、特別な解釈を加えたりせずにそのままデバイスドライバに伝えるのが一般的である。デバイスドライバの作者はリクエスト番号についての説明を記すとともに、番号を定数としてヘッダファイルに記述する。いくつかのシステムではリクエスト番号のパラメータとして、実際のリクエスト番号と渡されるデータのサイズを多重化したものを用いる慣習がある。