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.