.SH 説明
この man ページでは、ネットワークデバイスを設定するために 用いるソケットインターフェースについて解説する。
-Linux はネットワークデバイスを設定するための標準的な ioctl を いくつか備えている。これらはどんなソケットのファイルディスクリプタにも
+Linux ã\81¯ã\83\8dã\83\83ã\83\88ã\83¯ã\83¼ã\82¯ã\83\87ã\83\90ã\82¤ã\82¹ã\82\92è¨å®\9aã\81\99ã\82\8bã\81\9fã\82\81ã\81®æ¨\99æº\96ç\9a\84ã\81ª ioctl ã\82\92 ã\81\84ã\81\8fã\81¤ã\81\8bå\82\99ã\81\88ã\81¦ã\81\84ã\82\8bã\80\82ã\81\93ã\82\8cã\82\89ã\81¯ã\81©ã\82\93ã\81ªã\82½ã\82±ã\83\83ã\83\88ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\83\87ã\82£ã\82¹ã\82¯ã\83ªã\83\97ã\82¿ã\83¼ã\81«ã\82\82
用いることができる。ファミリーやタイプは何でもよい。 これらの ioctl のほとんどは \fIifreq\fP 構造体を渡す。
.in +4n
.in
通常、ユーザーによる設定対象デバイスの指定は、 \fIifr_name\fP にインターフェースの名前をセットすることによって行う。
-他の構造体の全てのメンバは、メモリを共有する。
+ä»\96ã\81®æ§\8bé\80 ä½\93ã\81®å\85¨ã\81¦ã\81®ã\83¡ã\83³ã\83\90ã\81¯ã\80\81ã\83¡ã\83¢ã\83ªã\83¼ã\82\92å\85±æ\9c\89ã\81\99ã\82\8bã\80\82
.SS ioctl
「特権が必要」と記述されている ioctl を実行するには、 実効ユーザー ID が 0 か、 \fBCAP_NET_ADMIN\fP
権限が必要である。これが満たされていない場合は \fBEPERM\fP が返される。
デバイスのハードウェアブロードキャストアドレスを \fIifr_hwaddr\fP の値に設定する。この操作には特権が必要である。
.TP
\fBSIOCGIFMAP\fP, \fBSIOCSIFMAP\fP
-ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\82\92 \fIifr_map\fP ã\82\92ç\94¨ã\81\84ã\81¦å\8f\96å¾\97ã\83»è¨å®\9aã\81\99ã\82\8bã\80\82 ã\83\91ã\83©ã\83¡ã\83¼ã\82¿の設定は特権が必要な操作である。
+ã\82¤ã\83³ã\82¿ã\83¼ã\83\95ã\82§ã\83¼ã\82¹ã\81®ã\83\8fã\83¼ã\83\89ã\82¦ã\82§ã\82¢ã\81®ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼ã\82\92 \fIifr_map\fP ã\82\92ç\94¨ã\81\84ã\81¦å\8f\96å¾\97ã\83»è¨å®\9aã\81\99ã\82\8bã\80\82 ã\83\91ã\83©ã\83¡ã\83¼ã\82¿ã\83¼の設定は特権が必要な操作である。
.in +4n
.nf
.fi
.in
-ifmap 構造体の解釈はデバイスドライバとアーキテクチャに依存する。
+ifmap æ§\8bé\80 ä½\93ã\81®è§£é\87\88ã\81¯ã\83\87ã\83\90ã\82¤ã\82¹ã\83\89ã\83©ã\82¤ã\83\90ã\81¨ã\82¢ã\83¼ã\82ã\83\86ã\82¯ã\83\81ã\83£ã\83¼ã\81«ä¾\9då\98ã\81\99ã\82\8bã\80\82
.TP
\fBSIOCADDMULTI\fP, \fBSIOCDELMULTI\fP
デバイスのリンク層のマルチキャストフィルターから、 \fIifr_hwaddr\fP のアドレスを追加・削除する。これらの操作には特権が必要である。
.in +4n
.nf
struct ifconf {
- int ifc_len; /* バッファサイズ */
+ int ifc_len; /* ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82º */
union {
- char *ifc_buf; /* バッファアドレス */
+ char *ifc_buf; /* ã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82¢ã\83\89ã\83¬ã\82¹ */
struct ifreq *ifc_req; /* 構造体の配列 */
};
};
.fi
.in
-\fIifc_req\fP ã\81\8c NULL ã\81®å ´å\90\88ã\80\81 \fBSIOCGIFCONF\fP ã\81¯ã\81\99ã\81¹ã\81¦ã\81®å\8f\96å¾\97ã\81§ã\81\8dã\82\8bã\82¢ã\83\89ã\83¬ã\82¹ã\82\92å\8f\97ã\81\91å\8f\96ã\82\8bã\81®ã\81«å¿\85è¦\81ã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\82µã\82¤ã\82º (ã\83\90ã\82¤ã\83\88æ\95°)
-を \fIifc_len\fP に格納して返す。 それ以外の場合は、\fIifc_req\fP には \fIifreq\fP 構造体の配列へのポインタを渡す。
-この構造体の配列には現在アクティブな L3 インターフェースアドレスがすべて格納される。 \fIifc_len\fP はバイト単位の配列のサイズを渡す。
-\fIifreq\fP 構造体内では、 \fIifr_name\fP にインターフェース名が、 \fIifr_addr\fP にそのアドレスが入る。
-実際に格納されたバイト数は \fIifc_len\fP で返される。
+\fIifc_req\fP ã\81\8c NULL ã\81®å ´å\90\88ã\80\81 \fBSIOCGIFCONF\fP ã\81¯ã\81\99ã\81¹ã\81¦ã\81®å\8f\96å¾\97ã\81§ã\81\8dã\82\8bã\82¢ã\83\89ã\83¬ã\82¹ã\82\92å\8f\97ã\81\91å\8f\96ã\82\8bã\81®ã\81«å¿\85è¦\81ã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82º
+(バイト数) を \fIifc_len\fP に格納して返す。 それ以外の場合は、\fIifc_req\fP には \fIifreq\fP
+構造体の配列へのポインターを渡す。 この構造体の配列には現在アクティブな L3 インターフェースアドレスがすべて格納される。 \fIifc_len\fP
+はバイト単位の配列のサイズを渡す。 \fIifreq\fP 構造体内では、 \fIifr_name\fP にインターフェース名が、 \fIifr_addr\fP
+にそのアドレスが入る。 実際に格納されたバイト数は \fIifc_len\fP で返される。
\fIifc_len\fP で指定されたサイズがすべてのアドレスを格納するのに不十分な場合、 カーネルは超過分をスキップし、成功を返す。
この状況になった場合、それを検出する信頼できる方法はない。 したがって、 前もって \fIifc_req\fP を NULL に設定して
-\fBSIOCGIFCONF\fP を呼び出して必要なバッファサイズを決定するか、 返された \fIifc_len\fP と元の値の差分が
-\fIsizeof(struct ifreq)\fP よりも小さい場合は必ずバッファを大きくして再度呼び出すか、 のいずれかを行うことが推奨される。
+\fBSIOCGIFCONF\fP ã\82\92å\91¼ã\81³å\87ºã\81\97ã\81¦å¿\85è¦\81ã\81ªã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82µã\82¤ã\82ºã\82\92決å®\9aã\81\99ã\82\8bã\81\8bã\80\81 è¿\94ã\81\95ã\82\8cã\81\9f \fIifc_len\fP ã\81¨å\85\83ã\81®å\80¤ã\81®å·®å\88\86ã\81\8c
+\fIsizeof(struct ifreq)\fP ã\82\88ã\82\8aã\82\82å°\8fã\81\95ã\81\84å ´å\90\88ã\81¯å¿\85ã\81\9aã\83\90ã\83\83ã\83\95ã\82¡ã\83¼ã\82\92大ã\81\8dã\81\8fã\81\97ã\81¦å\86\8d度å\91¼ã\81³å\87ºã\81\99ã\81\8bã\80\81 ã\81®ã\81\84ã\81\9aã\82\8cã\81\8bã\82\92è¡\8cã\81\86ã\81\93ã\81¨ã\81\8cæ\8e¨å¥¨ã\81\95ã\82\8cã\82\8bã\80\82
.\" Slaving isn't supported in 2.2
.\" .