Copyright (C) 2000-2012 |
GNU Info (libc.info)Interrupt InputInterrupt-Driven Input ====================== If you set the `O_ASYNC' status flag on a file descriptor (Note: 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 Note: Out-of-Band Data. (`SIGURG' is sent in any situation where `select' would report the socket as having an "exceptional condition". Note: 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. Note: 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 Note: 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. automatically generated by info2www version 1.2.2.9 |