【发布时间】:2015-05-15 05:15:28
【问题描述】:
在 C 套接字编程中,accept() 声明如下所示:
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
我能理解sockfd、struct sockaddr *addr的用途。
但是为什么我们要传递套接字长度的地址,它本来可以是socklen_t。因为如果accept() 函数需要长度,那么它可以通过socklen_t 得到它。为什么函数的原型是这样声明的?
那么使用socklen_t *类型背后的原因是什么?
【问题讨论】:
-
socketlen_t是一个 type,用于声明一个 variable 可以保存套接字地址的长度,该地址本身是可变的,具体取决于在地址族上。它本身不是那么长。
标签: c sockets networking