Open System Services System Calls Reference Manual (G06.29+, H06.08+, J06.03+)
System Functions (s and S) sigaction(2)
• The sigaction() function only works for synchronous signals. Attempting to set a signal
action for an asynchronous signal is an error. This is true even in a single-threaded pro-
cess.
• The signal mask is manipulated using the following functions: sigemptyset(),
sigfillset(), sigaddset( ), sigdelset(), and sigismember().
For additional information on using the sigaction() function in a threaded application that uses
the Standard POSIX Threads library, see Specifying Options, earlier.
NOTES
A threaded application that uses the Standard POSIX Threads library may use the
spt_sigaction(2) function instead of the sigaction() function, however, for portability reasons,
the use of sigaction() is recommended.
To use the spt_sigaction() function in a threaded application that uses the Standard POSIX
Threads library, see spt_sigaction(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 threaded 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 of the sigaction() function, the value 0 (zero) is returned. Other-
wise, the value -1 is returned and errno is set to indicate the error.
If the SA_ONSTACK flag and the SA_ONSTACK_COMPATIBILITY feature test macro are
set, although the thread-aware sigaction() function returns 0 (zero), the POSIX User Thread
Model library determines which stack is used to run the signal handler.
527186-023 Hewlett-Packard Company 7−95