(libc.info.gz) Interrupt Input
Info Catalog
(libc.info.gz) File Locks
(libc.info.gz) Low-Level I/O
(libc.info.gz) IOCTLs
13.16 Interrupt-Driven Input
============================
If you set the `O_ASYNC' status flag on a file descriptor ( File
Status Flags), a `SIGIO' signal is sent whenever input or output
becomes possible on that file descriptor. The process or process group
to receive the signal can be selected by using the `F_SETOWN' command
to the `fcntl' function. If the file descriptor is a socket, this also
selects the recipient of `SIGURG' signals that are delivered when
out-of-band data arrives on that socket; see Out-of-Band Data.
(`SIGURG' is sent in any situation where `select' would report the
socket as having an "exceptional condition". Waiting for I/O.)
If the file descriptor corresponds to a terminal device, then `SIGIO'
signals are sent to the foreground process group of the terminal.
Job Control.
The symbols in this section are defined in the header file `fcntl.h'.
-- Macro: int F_GETOWN
This macro is used as the COMMAND argument to `fcntl', to specify
that it should get information about the process or process group
to which `SIGIO' signals are sent. (For a terminal, this is
actually the foreground process group ID, which you can get using
`tcgetpgrp'; see Terminal Access Functions.)
The return value is interpreted as a process ID; if negative, its
absolute value is the process group ID.
The following `errno' error condition is defined for this command:
`EBADF'
The FILEDES argument is invalid.
-- Macro: int F_SETOWN
This macro is used as the COMMAND argument to `fcntl', to specify
that it should set the process or process group to which `SIGIO'
signals are sent. This command requires a third argument of type
`pid_t' to be passed to `fcntl', so that the form of the call is:
fcntl (FILEDES, F_SETOWN, PID)
The PID argument should be a process ID. You can also pass a
negative number whose absolute value is a process group ID.
The return value from `fcntl' with this command is -1 in case of
error and some other value if successful. The following `errno'
error conditions are defined for this command:
`EBADF'
The FILEDES argument is invalid.
`ESRCH'
There is no process or process group corresponding to PID.
Info Catalog
(libc.info.gz) File Locks
(libc.info.gz) Low-Level I/O
(libc.info.gz) IOCTLs
automatically generated by
info2html