XtAppAddInput() XtAppAddInput()
Name
XtAppAddInput - register a procedure to be called when there is activity on a file descriptor.
Synopsis
XtInputId XtAppAddInput(app_context, source, condition, proc, client_data)
XtAppContext app_context;
int source;
XtPointer condition;
XtInputCallbackProc proc;
XtPointer client_data;
Inputs
app_context
Specifies the application context.
source Specifies the file descriptor (on a POSIX-based system) to monitor.
condition Specifies a mask that indicates a read, write, or exception condition or some operating-system-dependent condition.
proc Specifies the procedure that is to be called when condition occurs on source.
client_data
Specifies data to be passed to proc when it is invoked.
Returns
A handle of type XtInputId that can be passed to XtRemoveInput() to unregister this input procedure.
Description
XtAddInput() registers a file descriptor source to be monitored by XtAppNextEvent() and a procedure proc to be called with data client_data
when the condition (such as "input ready" or "error") condition arises.
On a POSIX-based system, the supported values for condition are XtInputReadMask, XtInputWriteMask, or XtInputExceptMask. These values can-
not be ORed together. On non-POSIX systems, the types of source and condition will be operating-system dependent.
See XtInputCallbackProc(2) for an explanation of how to write an input callback.
See the POSIX select() system call for more information on the possible file descriptor conditions that can be selected for.
Usage
XtAppAddInput() allows an Xt application to receive non-X based events through the same event loop that delivers X events. File descrip-
tors in POSIX are a very general mechanism, and XtAppAddInput() can be used to receive notification when the user types a command to stdin,
when a child process closes a pipe, or when there is data available on an RPC socket, for example.
An input callback can be unregistered by calling XtRemoveInput() and passing the XtInputId returned by this function.
Note that when reading from a socket, you should be careful not to close the end of the socket that is waiting before exiting XtAppMain-
Loop(). If you do this, you will get an infinite loop, in which the callback is called repeatedly, while the Intrinsics wait for an EOF to
be read.
Structures
The XtInputId type is defined as follows:
typedef unsigned long XtInputId;
See Also
XtRemoveInput(1),
XtInputCallbackProc(2).
Xt - Event Handling XtAppAddInput()