ioctl

Autres langues

Langue: ja

Version: 2000-09-21 (openSuse - 09/10/07)

Section: 2 (Appels système)

̾Á°

ioctl - ¥Ç¥Ð¥¤¥¹ (device) ¤òÀ©¸æ¤¹¤ë

½ñ¼°

#include <sys/ioctl.h>

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

ÀâÌÀ

ioctl() ´Ø¿ô¤Ï¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë¤ò¹½À®¤¹¤ë¥Ç¥Ð¥¤¥¹¤Î¥Ñ¥é¥á¡¼¥¿¤ò Áàºî¤¹¤ë¡£Æäˡ¢¥­¥ã¥é¥¯¥¿·¿¤Î¥¹¥Ú¥·¥ã¥ë¡¦¥Õ¥¡¥¤¥ë(Î㤨¤ÐüËö(terminal)) ¤Î¿¤¯¤ÎÁàºî²Äǽ¤ÊÆÃÀ­¤ò ioctl() ¥ê¥¯¥¨¥¹¥È¤Ë¤è¤Ã¤ÆÀ©¸æ¤¹¤ë¤³¤È¤¬¤Ç¤­¤ë¡£°ú¤­¿ô d ¤Ï¥ª¡¼¥×¥ó¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¡¦¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

2ÈÖÌܤΰú¤­¿ô¤Ï¡¢¥Ç¥Ð¥¤¥¹°Í¸¤Î¥ê¥¯¥¨¥¹¥È¡¦¥³¡¼¥É¤Ç¤¢¤ë¡£ 3ÈÖÌܤΰú¤­¿ô¤Ï¡¢¥á¥â¥ê¤Ø¤Î·¿¤ò»ØÄꤷ¤Ê¤¤¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ ¤³¤Î°ú¤­¿ô¤ÏÅÁÅýŪ¤Ë(C ¤Ç void * ¤¬Í­¸ú¤Ë¤Ê¤ëÁ°¤«¤é) char *argp ¤Èɽµ­¤µ¤ì¤Æ¤¤¤ë¡£¤·¤¿¤¬¤Ã¤Æ¡¢¤³¤Îʸ¾Ï¤Ç¤â¤½¤Î¤è¤¦¤Ë̾ÉÕ¤±¤ë¤³¤È¤È¤¹¤ë¡£

ioctl() request ¤Ë¤Ï¡¢°Ê²¼¤Î¾ðÊó¤ò¥Ð¥¤¥È¿ô¤Ç¥¨¥ó¥³¡¼¥É¤¹¤ë: (1)°ú¤­¿ô¤¬ ÆþÎÏ ¥Ñ¥é¥á¡¼¥¿¤« ½ÐÎÏ ¥Ñ¥é¥á¡¼¥¿¤Î¤É¤Á¤é¤«¤Ç¤¢¤ë¤«¡¢ (2) argp ¤ÎÂ礭¤µ¡£ ioctl() request ¤ò»ØÄꤹ¤ë¤¿¤á¤Î¥Þ¥¯¥í(macro)¤ÈÄêµÁ¤Ï <sys/ioctl.h> ¥Õ¥¡¥¤¥ë¤Ë¤¢¤ë¡£

ÊÖ¤êÃÍ

ioctl() requests use the return value as an output parameter ¤¿¤¤¤Æ¤¤¤Î¾ì¹ç¡¢À®¸ù¤·¤¿¾ì¹ç¤Ï¥¼¥í¤¬ÊÖ¤µ¤ì¤ë¡£ ¤¤¤¯¤Ä¤«¤Î ioctl() Í×µá¤Ç¤Ï½ÐÎϥѥé¥á¡¼¥¿¤È¤·¤ÆÊÖ¤êÃͤò»ÈÍѤ·¤Æ¤¤¤¿¤ê¡¢ À®¸ù¤·¤¿¾ì¹ç¤ËÈó 0 ¤ÎÃͤòÊÖ¤·¤¿¤ê¤¹¤ë¡£ ¥¨¥é¡¼¤Î¾ì¹ç¤Ï -1 ¤¬ÊÖ¤µ¤ì¡¢ errno ¤¬Å¬ÀÚ¤ËÀßÄꤵ¤ì¤ë¡£

¥¨¥é¡¼

EBADF
d ¤¬Í­¸ú¤Ê¥Ç¥£¥¹¥¯¥ê¥×¥¿¤Ç¤Ï¤Ê¤¤¡£
EFAULT
argp ¤¬¥¢¥¯¥»¥¹ÉÔ²Äǽ¤Ê¥á¥â¥ê¤ò»²¾È¤·¤Æ¤¤¤ë¡£
EINVAL
request ¤Þ¤¿¤Ï argp ¤¬ÉÔÀµ¤Ç¤¢¤ë¡£
ENOTTY
d ¤¬¥­¥ã¥é¥¯¥¿·¿¤Î¥¹¥Ú¥·¥ã¥ë¡¦¥Ç¥Ð¥¤¥¹¤ò»²¾È¤·¤Æ¤¤¤Ê¤¤¡£
ENOTTY
»ØÄꤵ¤ì¤¿¥ê¥¯¥¨¥¹¥È¤Ï¥Ç¥£¥¹¥¯¥ê¥×¥¿ d ¤¬»²¾È¤¹¤ë¼ïÎà¤Î¥ª¥Ö¥¸¥§¥¯¥È¤Ë¤ÏŬÍѤ¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£

½àµò

¤É¤ì¤«°ì¤Ä¤Îɸ½à¤ËÂбþ¤·¤Æ¤¤¤ë¤ï¤±¤Ç¤Ï¤Ê¤¤¡£ ioctl(2) ¤Î°ú¤­¿ô¡¢ÊÖ¤êÃÍ¡¢²ò¼á¤Ï¡¢½èÍýÂоݤΥǥХ¤¥¹¡¦¥É¥é¥¤¥Ð¤´¤È¤Ë °Û¤Ê¤ë(¤³¤Î´Ø¿ô¤Ï 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), mt(4), sd(4), tty(4)