OS/161 Reference Manual


ioctl - miscellaneous device I/O operations


Standard C Library (libc, -lc)


#include <sys/ioctl.h>

ioctl(int fd, int code, void *data);


ioctl performs an object-specific operation code on the object referred to by the file handle fd. The data argument may point to supplemental data required or returned by the operation. The size of buffer required, if any, and other such matters are operation-specific.

Traditionally, ioctl is a catchall function for performing operations that don't fit neatly into any other model.

The ioctl codes are defined in <kern/ioctl.h>, which should be included via <sys/ioctl.h> by user-level code. As of this writing, the base OS/161 system defines no ioctls. However, it may prove useful to implement some, particularly in connection with some less conventional possible projects.

Return Values

On success, ioctl returns 0. On error, -1 is returned, and errno is set according to the error encountered.


The following error codes should be returned under the conditions given. Other error codes may be returned for other cases not mentioned here.
  EBADF fd was not a valid file handle.
EIOCTL code was an invalid ioctl for the object referenced.
EFAULT data was required by the operation requested, but was an invalid pointer.