.\" Updated 2011-08-10, TACHIBANA Akira <tati@kc5.so-net.ne.jp>
.\" Updated 2011-09-15, TACHIBANA Akira <tati@kc5.so-net.ne.jp>
.\"
-.\"WORD: device ¥Ç¥Ð¥¤¥¹
-.\"WORD: control À©¸æ¤¹¤ë
-.\"WORD: special ¥¹¥Ú¥·¥ã¥ë
-.\"WORD: character ¥¥ã¥é¥¯¥¿
-.\"WORD: parameter ¥Ñ¥é¥á¡¼¥¿
-.\"WORD: operate Áàºî
-.\"WORD: open ¥ª¡¼¥×¥ó
-.\"WORD: request ¥ê¥¯¥¨¥¹¥È
-.\"WORD: descriptor ¥Ç¥£¥¹¥¯¥ê¥×¥¿
-.\"WORD: argument °ú¤¿ô
-.\"WORD: encode ¥¨¥ó¥³¡¼¥É
-.\"WORD: operating characteristics Æ°ºîÆÃÀ
+.\"WORD: device ã\83\87ã\83\90ã\82¤ã\82¹
+.\"WORD: control 制御する
+.\"WORD: special スペシャル
+.\"WORD: character ã\82ã\83£ã\83©ã\82¯ã\82¿
+.\"WORD: parameter ã\83\91ã\83©ã\83¡ã\83¼ã\82¿
+.\"WORD: operate 操作
+.\"WORD: open オープン
+.\"WORD: request リクエスト
+.\"WORD: descriptor ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿
+.\"WORD: argument 引き数
+.\"WORD: encode エンコード
+.\"WORD: operating characteristics 動作特性
.\"
.TH IOCTL 2 2000-09-21 "Linux" "Linux Programmer's Manual"
-.SH ̾Á°
-ioctl \- ¥Ç¥Ð¥¤¥¹¤òÀ©¸æ¤¹¤ë
-.SH ½ñ¼°
+.SH 名前
+ioctl \- デバイスを制御する
+.SH 書式
.B #include <sys/ioctl.h>
.sp
.BI "int ioctl(int " d ", int " request ", ...);"
-.SH ÀâÌÀ
+.SH 説明
.BR ioctl ()
-´Ø¿ô¤Ï¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤ò¹½À®¤¹¤ë¥Ç¥Ð¥¤¥¹¤Î¥Ñ¥é¥á¡¼¥¿¤ò
-Áàºî¤¹¤ë¡£Æäˡ¢¥¥ã¥é¥¯¥¿·¿¤Î¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë (Î㤨¤ÐüËö (terminal))
-¤Î¿¤¯¤ÎÆ°ºîÆÃÀ¤ò
+関数はスペシャル・ファイルを構成するデバイスのパラメータを
+操作する。特に、キャラクタ型のスペシャル・ファイル (例えば端末 (terminal))
+の多くの動作特性を
.BR ioctl ()
-¥ê¥¯¥¨¥¹¥È¤Ë¤è¤Ã¤ÆÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤¤ë¡£°ú¤¿ô
+リクエストによって制御することができる。引き数
.I d
-¤Ï¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£
+はオープンされたファイル・ディスクリプタでなければならない。
.PP
-2 ÈÖÌܤΰú¤¿ô¤Ï¡¢¥Ç¥Ð¥¤¥¹°Í¸¤Î¥ê¥¯¥¨¥¹¥È¡¦¥³¡¼¥É¤Ç¤¢¤ë¡£
-3 ÈÖÌܤΰú¤¿ô¤Ï¡¢¥á¥â¥ê¤Ø¤Î·¿¤ò»ØÄꤷ¤Ê¤¤¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£
-¤³¤Î°ú¤¿ô¤ÏÅÁÅýŪ¤Ë (C ¤Ç
+2 番目の引き数は、デバイス依存のリクエスト・コードである。
+3 番目の引き数は、メモリへの型を指定しないポインタである。
+この引き数は伝統的に (C で
.B "void *"
-¤È¤¤¤¦½ñ¤Êý¤¬Í¸ú¤Ë¤Ê¤ëÁ°¤«¤é)
+という書き方が有効になる前から)
.BI "char *" argp
-¤Èɽµ¤µ¤ì¤Æ¤¤¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤Îʸ¾Ï¤Ç¤â¤½¤¦Ì¾ÉÕ¤±¤ë¤³¤È¤È¤¹¤ë¡£
+と表記されている。したがって、この文章でもそう名付けることとする。
.PP
.BR ioctl ()
-¤Î
+の
.I request
-¤Ë¤Ï¡¢
-¤½¤Î°ú¤¿ô¤¬
-.I ÆþÎÏ
-¥Ñ¥é¥á¡¼¥¿¤È
-.I ½ÐÎÏ
-¥Ñ¥é¥á¡¼¥¿¤Î¤É¤Á¤é¤Ç¤¢¤ë¤«¤Î¶èÊ̤䡢
+には、
+その引き数が
+.I 入力
+パラメータと
+.I 出力
+パラメータのどちらであるかの区別や、
.I argp
-°ú¤¿ô¤Î¥Ð¥¤¥Èñ°Ì¤Î¥µ¥¤¥º¡¢¤È¤¤¤Ã¤¿¾ðÊ󤬥¨¥ó¥³¡¼¥É¤µ¤ì¤Æ¤¤¤ë¡£
+引き数のバイト単位のサイズ、といった情報がエンコードされている。
.BR ioctl ()
-¤Î
+の
.I request
-¤ò»ØÄꤹ¤ë¤¿¤á¤Î¥Þ¥¯¥í (macro) ¤ÈÄêµÁ¤Ï
+を指定するためのマクロ (macro) と定義は
.I <sys/ioctl.h>
-¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë¡£
-.SH ÊÖ¤êÃÍ
-¤¿¤¤¤Æ¤¤¤Î¾ì¹ç¡¢À®¸ù¤¹¤ë¤È¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£
-¤¿¤À¤·¡¢
+ファイルにある。
+.SH 返り値
+たいていの場合、成功するとゼロが返される。
+ただし、
.BR ioctl ()
-¥ê¥¯¥¨¥¹¥È¤ÎÃæ¤Ë¤Ï¥Ñ¥é¥á¡¼¥¿¤Î½ÐÎϤËÊÖ¤êÃͤò»ÈÍѤ·¤Æ¤¤¤ë¤â¤Î¤¬¼ã´³¤¢¤ê¡¢
-¤½¤Î¾ì¹ç¤Ï¡¢À®¸ù¤·¤¿¤È¤¤ËÈóÉé¤ÎÃͤ¬ÊÖ¤µ¤ì¤ë¡£
-¥¨¥é¡¼¤Î¾ì¹ç¤Ï \-1 ¤¬ÊÖ¤µ¤ì¡¢
+リクエストの中にはパラメータの出力に返り値を使用しているものが若干あり、
+その場合は、成功したときに非負の値が返される。
+エラーの場合は \-1 が返され、
.I errno
-¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£
-.SH ¥¨¥é¡¼
+が適切に設定される。
+.SH ã\82¨ã\83©ã\83¼
.TP 0.7i
.B EBADF
.I d
-¤¬Í¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£
+が有効なディスクリプタではない。
.TP
.B EFAULT
.I argp
-¤¬¥¢¥¯¥»¥¹ÉÔ²Äǽ¤Ê¥á¥â¥ê¤ò»²¾È¤·¤Æ¤¤¤ë¡£
+がアクセス不可能なメモリを参照している。
.TP
.B EINVAL
.I request
-¤Þ¤¿¤Ï
+または
.I argp
-¤¬ÉÔÀµ¤Ç¤¢¤ë¡£
+が不正である。
.TP
.B ENOTTY
.I d
-¤¬¥¥ã¥é¥¯¥¿·¿¤Î¥¹¥Ú¥·¥ã¥ë¡¦¥Ç¥Ð¥¤¥¹¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£
+がキャラクタ型のスペシャル・デバイスを参照していない。
.TP
.B ENOTTY
-»ØÄꤵ¤ì¤¿¥ê¥¯¥¨¥¹¥È¤Ï¥Ç¥£¥¹¥¯¥ê¥×¥¿
+æ\8c\87å®\9aã\81\95ã\82\8cã\81\9fã\83ªã\82¯ã\82¨ã\82¹ã\83\88ã\81¯ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿
.I d
-¤¬»²¾È¤¹¤ë¼ïÎà¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤ÏŬÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤Ê¤¤¡£
-.SH ½àµò
-¤É¤ì¤«°ì¤Ä¤Îɸ½à¤ËÂбþ¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£
+が参照する種類のオブジェクトには適用することができない。
+.SH 準拠
+どれか一つの標準に対応しているわけではない。
.BR ioctl ()
-¤Î°ú¤¿ô¡¢ÊÖ¤êÃÍ¡¢²ò¼á¤Ï¡¢½èÍýÂоݤΥǥХ¤¥¹¡¦¥É¥é¥¤¥Ð¤´¤È¤Ë
-°Û¤Ê¤ë (¤³¤Î´Ø¿ô¤Ï UNIX ¤Î ¥¹¥È¥ê¡¼¥à I/O ¥â¥Ç¥ë ¤Ë
-¤¤Á¤ó¤ÈŬ¹ç¤·¤Æ¤¤¤Ê¤¤Áàºî¤Î¤¿¤á¤ÎÊØÍø²°¤È¤·¤Æ»ÈÍѤµ¤ì¤ë)¡£
-¤è¤¯ÃΤé¤ì¤Æ¤¤¤ë
+の引き数、返り値、解釈は、処理対象のデバイス・ドライバごとに
+異なる (この関数は UNIX の ストリーム I/O モデル に
+きちんと適合していない操作のための便利屋として使用される)。
+よく知られている
.BR ioctl ()
-¤Î¥ê¥¹¥È¤Ë¤Ä¤¤¤Æ¤Ï
+のリストについては
.BR ioctl_list (2)
-¤ò»²¾È¤¹¤ë¤³¤È¡£
+を参照すること。
.BR ioctl ()
-´Ø¿ô¥³¡¼¥ë¤Ï Version 7 AT&T UNIX ¤ÇÅо줷¤¿¡£
-.SH Ãí°Õ
-¤³¤Î¥·¥¹¥Æ¥à¥³¡¼¥ë¤ò»È¤¦¤Ë¤Ï¡¢¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤¬
-ɬÍפǤ¢¤ë¡£
+関数コールは Version 7 AT&T UNIX で登場した。
+.SH 注意
+このシステムコールを使うには、オープンされたファイル・ディスクリプタが
+必要である。
.BR open (2)
-¥³¡¼¥ë¤Ï¤·¤Ð¤·¤Ð˾¤ó¤Ç¤¤¤Ê¤¤ÉûºîÍѤòȼ¤¦¤³¤È¤¬¤¢¤ë¤¬¡¢Linux ¤Ç¤Ï
+コールはしばしば望んでいない副作用を伴うことがあるが、Linux では
.BR open (2)
-¤Ë
+に
.B O_NONBLOCK
-¥Õ¥é¥°¤ò¤Ä¤±¤ë¤³¤È¤Ç¤³¤ÎÉûºîÍѤòÈò¤±¤ë¤³¤È¤¬¤Ç¤¤ë¡£
-.SH ´ØÏ¢¹àÌÜ
+フラグをつけることでこの副作用を避けることができる。
+.SH 関連項目
.BR execve (2),
.BR fcntl (2),
.BR ioctl_list (2),