ioctl
接口名称
ioctl(int fd, unsigned long request, ...)
接口描述
设备驱动程序中对设备的I/O通道进行管理的函数。
参数说明
| 参数 | 说明 | 备注 |
|---|---|---|
| fd | 文件描述符 | 传入socket描述符。 |
| request | 要设置的选项 | 支持FIONBIO、FIONREAD、SIOCETHTOOL、SIOCGIFCONF、SIOCGIFFLAGS、SIOCGIFNETMASK、SIOCGIFINDEX、SIOCGIFHWADDR、SIOCGIFBRDADDR,其他不支持。 |
| ... | 可变参数 | 实际类型与request相关。 |
返回值
类型:int
- 0:表示成功
- -1:表示失败,并设置errno以指示错误类型
错误码
| 错误码 | 描述 |
|---|---|
| EFAULT | 入参argp在用户的地址空间之外。 |
| EINVAL | 入参request不支持,当前支持FIONBIO、FIONREAD、SIOCETHTOOL、SIOCGIFCONF、SIOCGIFFLAGS、SIOCGIFNETMASK、SIOCGIFINDEX、SIOCGIFHWADDR、SIOCGIFBRDADDR,其他不支持。 |
| EINVAL | 共线程部署模式时,sockfd的worker id和当前线程的worker id不一致,即socket跨worker线程调用。 |
| ELIBBAD | 系统符号加载失败。 |
| EINVAL | 套接字存在,但是套接字对应的数据结构存在异常。 |