XtAppAddInput()XtAppAddInput()NameXtAppAddInput - register a procedure to be called when there is activ‐
ity 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.
DescriptionXtAddInput() 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") con‐
dition arises.
On a POSIX-based system, the supported values for condition are XtInpu‐
tReadMask, XtInputWriteMask, or XtInputExceptMask. These values cannot
be ORed together. On non-POSIX systems, the types of source and condi‐
tion 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.
UsageXtAppAddInput() allows an Xt application to receive non-X based events
through the same event loop that delivers X events. File descriptors
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 AlsoXtRemoveInput(1),
XtInputCallbackProc(2).
Xt - Event Handling XtAppAddInput()