IOCTL

Section: Linux Programmer's Manual (2)
Updated: 2014-12-31
Index JM Home Page
 

名前

ioctl - デバイスを制御する  

書式

#include <sys/ioctl.h>

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

説明

ioctl() 関数はスペシャルファイルを構成するデバイスのパラメーターを 操作する。特に、キャラクター型のスペシャルファイル (例えば端末 (terminal)) の多くの動作特性を ioctl() リクエストによって制御することができる。引き数 fd はオープンされたファイルディスクリプターでなければならない。

2 番目の引き数は、デバイス依存のリクエストコードである。 3 番目の引き数は、メモリーへの型を指定しないポインターである。 この引き数は伝統的に (C で void * という書き方が有効になる前から) char *argp と表記されている。したがって、この文章でもそう名付けることとする。

ioctl() の request には、 その引き数が 入力 パラメーターと 出力 パラメーターのどちらであるかの区別や、 argp 引き数のバイト単位のサイズ、といった情報がエンコードされている。 ioctl() の request を指定するためのマクロ (macro) と定義は <sys/ioctl.h> ファイルにある。  

返り値

たいていの場合、成功するとゼロが返される。 ただし、 ioctl() リクエストの中にはパラメーターの出力に返り値を使用しているものが若干あり、 その場合は、成功したときに非負の値が返される。 エラーの場合は -1 が返され、 errno が適切に設定される。  

エラー

EBADF
fd が無効なディスクリプターである。
EFAULT
argp がアクセス不可能なメモリーを参照している。
EINVAL
request または argp が不正である。
ENOTTY
fd がキャラクター型のスペシャルデバイスを参照していない。
ENOTTY
指定されたリクエストはディスクリプター fd が参照する種類のオブジェクトには適用することができない。
 

準拠

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

注意

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

関連項目

execve(2), fcntl(2), ioctl_list(2), open(2), sd(4), tty(4)  

この文書について

この man ページは Linux man-pages プロジェクトのリリース 3.79 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

引き数   ioctl   デバイス   パラメーター   リクエスト   スペシャル   制御   操作   キャラクター   オープン   メモリー   成功   返り値   list   副作用   long   構成   端末   terminal   特性   依存   コード   ポインター   伝統的   書き方

Linux マニュアル 一覧

関連するコマンド・関数

dsp56k.4   netdevice.7   mknod.1   aio_error.3   intro.4   timedc.8
 

Index

名前
書式
説明
返り値
エラー
準拠
注意
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:38:59 GMT, October 11, 2026