ioctl

Function ioctl 

Source
pub fn ioctl(fd: i32, request: u32, arg: usize) -> isize
Expand description

ioctl - 设备特定的输入/输出控制

§参数

  • fd: 文件描述符
  • request: ioctl 请求码(由 _IO, _IOR, _IOW, _IOWR 宏构造)
  • arg: 参数指针(根据 request 类型解释)

§返回值

  • 成功: 返回 0 或设备特定的值
  • 失败: 返回 -errno

§支持的操作

§通用文件操作

  • FIONBIO - 设置非阻塞模式
  • FIONREAD - 获取可读字节数
  • FIOASYNC - 设置异步 I/O

§终端操作

  • TIOCGWINSZ - 获取终端窗口大小
  • TIOCSWINSZ - 设置终端窗口大小
  • TCGETS - 获取终端属性
  • TCSETS - 设置终端属性

§网络操作

  • SIOCGIFCONF - 获取网络接口列表
  • SIOCGIFADDR - 获取接口地址
  • SIOCGIFFLAGS - 获取接口标志
  • 等等(详见 uapi/ioctl.rs)

§注意

  • 大部分 ioctl 操作需要相应的设备驱动程序支持
  • 无效的 request 码会返回 ENOTTY