名
ioctl - 制御デバイス
シノプシス
#include
int ioctl(int d 、int request 、...);
説明
ioctl関数は、特殊ファイルの基礎となるデバイスパラメータを操作します。 特に、文字特殊ファイル(端末など)の多くの動作特性は、 ioctl要求で制御できます。 引き数dはオープンファイル記述子でなければなりません。
2番目の引数は、デバイス依存の要求コードです。 3番目の引数は、型が指定されていないメモリへのポインタです。 これは伝統的にchar * argp ( void *が有効なCの前日から)であり、この議論のためにその名前が付けられます。
ioctl 要求では、引数がinパラメータであるかoutパラメータであるか、引数argpのサイズはバイトであるかにかかわらず、その中にエンコードされています。 ioctl 要求の指定に使用されるマクロと定義は、
戻り値
通常、成功するとゼロが返されます。 いくつかのioctlは出力パラメータとして戻り値を使用し、成功すると非負の値を返します。 エラーの場合、-1が返され、 errnoが適切に設定されます。
エラー
EBADF
dは有効な記述子ではありません。
EFAULT
argpは 、アクセスできないメモリ領域を参照します。
エノテ
dは文字特殊装置に関連付けられていません。
エノテ
指定された要求は、記述子dが参照するオブジェクトの種類には適用されません。
EINVAL
要求またはargpが無効です。
従う
単一の基準はありません。 ioctl (2)の引数、戻り値、およびセマンティクスは、問題のデバイスドライバによって異なります(この呼び出しは、 UnixストリームI / Oモデルに完全に適合しない操作のキャッチオールとして使用されます)。 既知の多くのioctl呼び出しのリストについては、 ioctl_list (2)を参照してください。 ioctl関数呼び出しはバージョン7のAT&T Unixで登場しました。