Open System Services System Calls Reference Manual (G06.29+, H06.08+, J06.03+)
select(2) OSS System Calls Reference Manual
To use the select() functionality in a threaded application that uses the Standard POSIX Threads
library, see spt_select(2) and spt_select_single_np(2).
To use this function in a threaded application that uses the POSIX User Thread Model library on
systems running H06.21 or later RVUs or J06.10 or later RVUs, you must perform all of the fol-
lowing tasks to make the function thread-aware in a multi-threaded application:
• Compile the application using the _PUT_MODEL_ feature test macro or equivalent
compiler command option.
• Link the application to the zputdll library (/G/system/zdllnnn/zputdll).
On systems running H06.24 or later H-series RVUs or J06.13 or later J-series RVUs, you can use
this function with 32-bit or 64-bit OSS applications.
To use this function in a 32-bit threaded application on systems running H06.24 or later RVUs or
J06.13 or later RVUs, perform the same tasks (described above) used to make the function
thread-aware in a multi-threaded application on systems running H06.21/J06.10 or later RVUs.
To use this function in a 64-bit threaded application on systems running H06.24 or later RVUs or
J06.13 or later RVUs, you must perform all of the following tasks to make the function thread-
aware in a multi-threaded application:
• Compile the application using the _PUT_MODEL_ feature test macro or equivalent
compiler command option.
• Compile the application using the -Wlp64 compiler command option.
• Link the application to the yputdll library (/G/system/zdllnnn/yputdll).
For detailed information about writing multi-threaded and 64-bit applications for the Open Sys-
tem Services environment, see the Open System Services Programmer’s Guide.
RETURN VALUES
Upon successful completion, the select() function returns the number of ready objects
represented by corresponding file descriptor bits in all the file descriptor sets. When an error
occurs, the value -1 is returned, and errno is set to indicate the error.
When the time limit specified by the timeout parameter expires, the select() function returns the
value 0 (zero), and all bits in the objects pointed to by the readfds, writefds, and errorfds parame-
ters are also set to 0 (zero).
When select() returns an error, the file descriptor sets pointed to by the readfds, writefds, and
errorfds parameters remain unmodified.
The FD_CLR, FD_SET, and FD_ZERO macros do not return values. The FD_ISSET macro
returns a nonzero value when the bit for the file descriptor specified by its fd parameter is set in
the file descriptor set pointed to by its fdset parameter; otherwise, the FD_ISSET macro returns 0
(zero).
ERRORS
If any of these conditions occur, the select() function sets errno to the corresponding value:
[EBADF] One of the specified file descriptor sets is invalid. One of these conditions
occurred:
• The invalid file descriptor set contains a file descriptor for a file that is
not open.
7−12 Hewlett-Packard Company 527186-023