pub unsafe fn ioctl<F: AsFd, I: Ioctl>(fd: F, ioctl: I) -> Result<I::Output>Expand description
Perform an ioctl call.
ioctl was originally intended to act as a way of modifying the behavior
of files, but has since been adopted as a general purpose system call for
making calls into the kernel. In addition to the default calls exposed by
generic file descriptors, many drivers expose their own ioctl calls for
controlling their behavior, some of which are proprietary.
This crate exposes many other ioctl interfaces with safe and idiomatic
wrappers, like ioctl_fionbio and
ioctl_fionread. It is recommended to use
those instead of this function, as they are safer and more idiomatic.
For other cases, implement the Ioctl API and pass it to this function.
See documentation for Ioctl for more information.
Safety
While Ioctl takes much of the unsafety out of ioctl calls, it is
still unsafe to call this code with arbitrary device drivers, as it is up
to the device driver to implement the ioctl call correctly. It is on the
onus of the protocol between the user and the driver to ensure that the
ioctl call is safe to make.