スポンサーリンク

IOCTL(2) FreeBSD システムコールマニュアル IOCTL(2)

名称

ioctl − デバイスを制御する

ライブラリ

標準 C ライブラリ (libc, −lc)

書式

#include <sys/ioctl.h>

int

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

解説

ioctl() システムコールは特殊ファイルの下層となっているデバイスのパラメー タを操作します。特に、キャラクタ型特殊ファイル (たとえば、端末) の多数の 操作属性は ioctl() で制御できます。引数 d は開いているファイル記述子であ る必要があります。

ioctl() への 3 番めの引数は従来から char *argp と名前付けられています。し かし、 FreeBSD 3.0 での ioctl() のほとんどの使用法では、3 番めの引数が caddr_t または int である必要があります。

ioctl() の request は、引数が ‘‘in’’ 引数なのか ‘‘out’’ 引数なのかという ことと、引数 argp のサイズ (バイト単位) をエンコードします。 ioctl の request を指定するのに使用されるマクロと定義はファイル <sys/ioctl.h> の中 にあります。

戻り値

エラーが起きた場合は -1 が返され、エラーを示すために errno が設定されま す。

エラー

ioctl() システムコールは次の場合に失敗します:

       [EBADF]

d 引数が有効な記述子ではありません。

[ENOTTY]
d
引数がキャラクタ型特殊デバイスに対応していません。

[ENOTTY]
指定された要求は記述子 d が参照する種類のオブジェクト には適用されません。

[EINVAL]
request
または argp 引数が有効ではありません。

[EFAULT]
argp
引数がプロセッサが割り当てたアドレス範囲外を指し ています。

関連項目

execve(2), fcntl(2), intro(4), tty(4)

歴史

ioctl() 関数は Version 7 AT&T UNIX ではじめて登場しました。

FreeBSD 10.0 December 11, 1993 FreeBSD 10.0

スポンサーリンク