![]() |
![]() |
| 通常PC用 / 人気 更新 今日 カテ |
| 電子計算機 > 仕様・構造 > ソフトウェア > プログラミング言語 > 言語仕様 > データ型・構造体 > 独自のデータ型・構造体 |
| socklen_t |
| 辞書:電算用語の基礎知識 プログラミング仕様編 (PTPROGS) |
| 読み:ソックレン-ティー |
| 外語:socklen_t |
| 品詞:名詞 |
CやC++で、accept()で使用される、アドレスの長さを格納する型。
|
|
| 定義 |
FreeBSDでは、次のように定義される。
sys/socket.h
typedef __socklen_t socklen_t;
sys/_types.h
typedef __uint32_t __socklen_t;
machine/_types.h
typedef unsigned int __uint32_t;
つまり、32ビット環境のFreeBSDでは、間接的にunsigned intで定義される。
| 由来 |
accept()の第3引数は、元々はint *で宣言されていた。
POSIXはこれが気に入らなかったらしく、POSIXドラフト版でsize_t *に変更した。しかしBSDソケットインターフェイスの仕様上、ここはintと同じサイズが要求されており、もし本当にsize_tにしてしまうと、size_tの長さがintより長い場合にソケット層が破壊されてしまう。このためクレームが入り、やむを得ずint *と同じ長さのsocklen_t *とすることでお茶が濁された、という経緯がある。
| リンク |
| 通信用語の基礎知識検索システム WDIC Explorer Ver 7.04a (27-May-2022) Search System : Copyright © Mirai corporation Dictionary : Copyright © WDIC Creators club |