getsockopt
接口名称
getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen)
接口描述
获取socket选项值。
参数说明
| 参数 | 说明 | 备注 |
|---|---|---|
| sockfd | 通信节点描述符 | 传入socket描述符。 |
| level | 选项级别 | 支持SOL_SOCKET、IPPROTO_IP、IPPROTO_TCP。 |
| optname | 选项名称 | |
| *optval | 选项值 | 非空指针。 |
| *optlen | 选项长度 | 非空指针,长度随optval的类型而定。 |
返回值
类型:int
- 0:表示成功
- -1:表示失败,并设置errno以指示错误类型
错误码
| 错误码 | 描述 |
|---|---|
| EFAULT | 入参optval为空指针,或入参optlen为空指针。 |
| ENOPROTOOPT | 协议不支持该选项。 |
| EINVAL | 指定的选项在指定的套接字级别无效。入参optlen的值大于INT_MAX,或者入参optlen的值小于对应长度。 |
| EOPNOTSUPP | 对应level不支持。 |
| ELIBBAD | 系统符号加载失败。 |
| EINVAL | 套接字存在,但是套接字对应的数据结构存在异常。 |
| EINVAL | 共线程部署模式时,sockfd的worker id和当前线程的worker id不一致,即socket跨worker线程调用。 |