Linux 提供のヘッダー ファイル「/usr/include/linux/socket.h」には、サポートされているアドレス ファミリとプロトコル ファミリの定義が含まれています。
/* Supported address families. */
#define AF_UNSPEC 0
....
/* Protocol families, same as address families. */
#define PF_UNSPEC AF_UNSPEC
...
しかし、なぜソケットの型を定義しないのでしょうか?
「/usr/include/bits/socket.h」で定義を見つけることができます
enum sock_type {
SOCK_DGRAM = 1,
SOCK_STREAM = 2,
SOCK_RAW = 3,
SOCK_RDM = 4,
SOCK_SEQPACKET = 5,
SOCK_DCCP = 6,
SOCK_PACKET = 10,
};
Linux が提供するヘッダー ファイルでこれらが定義されていないのはなぜでしょうか。