---
title: ioctl
description: "**ioctl(int fd, unsigned long request, ...)**"
url: https://www.hikunpeng.com/document/detail/zh/knet/api/docs/zh/api/posix_apis/ioctl.md
sourcePath: /source/zh/knet/api/docs/zh/api/posix_apis/ioctl.md
indexId: 963800aa494441ae83f80bbd16c00175a3c6b8aee3284541c2671d7adf6d65d251
---
# 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|套接字存在，但是套接字对应的数据结构存在异常。|
