<html> <head> <title>ioctl</title> <body bgcolor=#ffffff> <h2 align=center>ioctl</h2> <h4 align=center>OS/161 Reference Manual</h4> <h3>Name</h3> ioctl - miscellaneous device I/O operations <h3>Library</h3> Standard C Library (libc, -lc) <h3>Synopsis</h3> #include <sys/ioctl.h><br> <br> int<br> ioctl(int <em>fd</em>, int <em>code</em>, void *<em>data</em>); <h3>Description</h3> ioctl performs an object-specific operation <em>code</em> on the object referred to by the file handle <em>fd</em>. The <em>data</em> 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. <p> Traditionally, ioctl is a catchall function for performing operations that don't fit neatly into any other model. <p> 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. <p> <h3>Return Values</h3> On success, ioctl returns 0. On error, -1 is returned, and <A HREF=errno.html>errno</A> is set according to the error encountered. <h3>Errors</h3> The following error codes should be returned under the conditions given. Other error codes may be returned for other errors not mentioned here. <blockquote><table width=90%> <td width=10%> </td><td> </td></tr> <tr><td>EBADF</td> <td><em>fd</em> was not a valid file handle.</td></tr> <tr><td>EIOCTL</td> <td><em>code</em> was an invalid ioctl for the object referenced.</td></tr> <tr><td>EFAULT</td> <td><em>data</em> was required by the operation requested, but was an invalid pointer.</td></tr> </table></blockquote> </body> </html>