diff options
| author | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:55:15 -0400 |
|---|---|---|
| committer | Jacob McDonnell <jacob@jacobmcdonnell.com> | 2026-04-25 19:55:15 -0400 |
| commit | 253e67c8b3a72b3a4757fdbc5845297628db0a4a (patch) | |
| tree | adf53b66087aa30dfbf8bf391a1dadb044c3bf4d /static/netbsd/man2/ioctl.2 | |
| parent | a9157ce950dfe2fc30795d43b9d79b9d1bffc48b (diff) | |
docs: Added All NetBSD Manuals
Diffstat (limited to 'static/netbsd/man2/ioctl.2')
| -rw-r--r-- | static/netbsd/man2/ioctl.2 | 220 |
1 files changed, 220 insertions, 0 deletions
diff --git a/static/netbsd/man2/ioctl.2 b/static/netbsd/man2/ioctl.2 new file mode 100644 index 00000000..5c801e12 --- /dev/null +++ b/static/netbsd/man2/ioctl.2 @@ -0,0 +1,220 @@ +.\" $NetBSD: ioctl.2,v 1.23 2010/12/19 22:19:27 wiz Exp $ +.\" +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)ioctl.2 8.2 (Berkeley) 12/11/93 +.\" +.Dd December 19, 2010 +.Dt IOCTL 2 +.Os +.Sh NAME +.Nm ioctl +.Nd control device +.Sh LIBRARY +.Lb libc +.Sh SYNOPSIS +.In sys/ioctl.h +.Ft int +.Fn ioctl "int d" "unsigned long request" "..." +.Sh DESCRIPTION +The +.Fn ioctl +function manipulates the underlying device parameters of special files. +In particular, many operating +characteristics of character special files (e.g. terminals) +may be controlled with +.Fn ioctl +requests. +The argument +.Fa d +must be an open file descriptor. +.Pp +An +.Fn ioctl +.Fa request +has encoded in it whether the argument is an +.Dq in , +.Dq out , +or +.Dq inout +parameter, and the size of the first variadic argument +in bytes. +Note that there can be only one variadic argument but cannot be represented as +a +.Ft "void *" +argument in the prototype because this would require a cast to pass integral +types without warnings. +Macros and defines used in specifying an +.Fn ioctl +.Fa request +are located in the header +.In sys/ioctl.h . +.Sh GENERIC IOCTLS +Some ioctls are applicable to any file descriptor. +These include: +.Bl -tag -width "xxxxxx" +.It Dv FIOCLEX +Set close-on-exec flag. +The file will be closed when +.Xr exec 3 +is invoked +(This is equivalent to +.Fn fcntl +.Dv F_SETFD +.Dv FD_CLOEXEC +and the +.Fn fcntl +form should be preferred). +.It Dv FIONCLEX +Clear close-on-exec flag. +The file will remain open across +.Xr exec 3 +(This is equivalent to +.Fn fcntl +.Dv F_SETFD +.Dv 0 +and the +.Fn fcntl +form should be preferred). +.El +.Pp +Some generic ioctls are not implemented for all types of file +descriptors. +These include: +.Bl -tag -width "xxxxxx" +.It Dv FIONREAD "int" +Get the number of bytes that are immediately available for reading. +.It Dv FIONWRITE "int" +Get the number of bytes in the descriptor's send queue. +These bytes are data which has been written to the descriptor but +which are being held by the kernel for further processing. +The nature of the required processing depends on the underlying device. +For tty devices, these bytes are typically queued for delivery +to the tty hardware. +For TCP sockets, these bytes have not yet been acknowledged by the +other side of the connection. +For files, this operation always returns zero as files do not have +send queues. +.It Dv FIONSPACE "int" +Get the free space in the descriptor's send queue. +This value is the size of the send queue minus the number of bytes +being held in the queue. +Note: while this value represents the number of bytes that may be +added to the queue, other resource limitations may cause a write +not larger than the send queue's space to be blocked. +One such limitation would be a lack of network buffers for a write +to a network connection. +.It Dv FIONBIO "int" +Set non-blocking I/O mode if the argument is non-zero. +In non-blocking mode, +.Xr read 2 +or +.Xr write 2 +calls return +.Dv \-1 +and set +.Va errno +to +.Er EAGAIN +immediately when no data is available +(This is equivalent to +.Fn fcntl +.Dv F_SETFL +.Dv O_NONBLOCK +and the +.Fn fcntl +form should be preferred). +.It Dv FIOASYNC "int" +Set asynchronous I/O mode if the argument is non-zero +(This is equivalent to +.Fn fcntl +.Dv F_SETFL +.Dv O_ASYNC +and the +.Fn fcntl +form should be preferred). +In asynchronous mode, the process or process group specified by +.Dv FIOSETOWN +will start receiving +.Dv SIGIO +signals when data is available. +The +.Dv SIGIO +signal will be delivered when data is available on the file +descriptor. +.It Dv FIOSETOWN, FIOGETOWN "int" +Set/get the process or the process group (if negative) that should receive +.Dv SIGIO +signals when data is available +(This is equivalent to +.Fn fcntl +.Dv F_SETOWN +.Ft pid_t +and the +.Ft fcntl +form should be preferred). +.El +.Sh RETURN VALUES +If an error has occurred, a value of \-1 is returned and +.Va errno +is set to indicate the error. +.Sh ERRORS +.Fn ioctl +will fail if: +.Bl -tag -width Er +.It Bq Er EBADF +.Fa d +is not a valid descriptor. +.It Bq Er EFAULT +.Fa argp +points outside the process's allocated address space. +.It Bq Er EINVAL +.Fa request +or +.Fa argp +is not valid. +.It Bq Er ENOTTY +.Fa d +is not associated with a character +special device; or +the specified request does not apply to the kind +of object that the descriptor +.Fa d +references. +.El +.Sh SEE ALSO +.Xr mt 1 , +.Xr execve 2 , +.Xr fcntl 2 , +.Xr intro 4 , +.Xr tty 4 +.Sh HISTORY +An +.Fn ioctl +function call appeared in +.At v7 . |
