Jor*_*vis 6 c sockets linux network-programming socklen-t
我正在使用sys/socket.h lib 构建一个简单的套接字Web服务器,我遇到了socklen_t和sa_family_t数据类型,并且对它们的实际目的有点困惑.
定义:
sa_family_t - 无符号整数类型.socklen_t - 无符号不透明整数类型,长度至少为32位.现在我明白了<sys/socket>LIB声明三种结构(sockaddr,msghdr,cmsghdr),它包含声明这些数据类型的成员.
sa_family_t sa_family address familysocklen_t msg_namelen size of addresssocklen_t msg_controllen ancillary data buffer lensocklen_t cmsg_len data byte count, including the cmsghdr但为什么要创建新的数据类型,为什么不使用unsigned int数据类型呢?
通过为这些字段声明特定类型,它将它们与特定表示形式分离unsigned int.
不同的体系结构可以自由地为这些字段定义不同的大小,使用这些特定类型的代码不需要担心int给定机器的大小.