Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ signal(2) — DG/UX 4.30

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

kill(2)

pause(2)

ptrace(2)

wait(2)

berk_signal(3)



     signal(2)                  DG/UX 4.30                   signal(2)



     NAME
          signal - Specify what to do upon presentation of a signal.

     SYNOPSIS
          #include <signal.h>

          void    (* signal (signal_number, action))()
          int     signal_number;
          void    (*action)();

     PARAMETERS
          signal_number  Type of signal.

          action         Handler for the signal.

     DESCRIPTION
          This manual page describes the default signal functionality.
          If you define the _BSD_SIGNAL_FLAVOR macro or if you define
          only the _BSD_SOURCE macro when you compile your C
          application, however, you will get the functionality
          described in berksignal(3) (also found as signal(3)).  For
          more information about the _BSD_SIGNAL_FLAVOR and
          _BSD_SOURCE macros and the functionality they provide, see
          Porting Applications to the DG/UXTM System.

          Signal allows the calling process to choose one of three
          ways to handle the presentation of a specific signal.
          Signal_number specifies the signal, and action specifies the
          choice.

          Signal_number may be any of the valid signals except
          SIGKILL.  See <sys/signal.h> (which is included into
          <signal.h>) for a complete list.

          Action is assigned one of three values:  SIG_DFL, SIG_IGN,
          or a function address.  The actions prescribed by these
          values are as follows.

          SIG_DFL
               Process termination.

               The process's signal action vector entry for
               signal_number is set to `default'.  If the signal
               signal_number was pended and signal_number is not
               SIGKILL, the pended signal is lost.  The set of blocked
               signals remains unchanged.

               When the signal signal_number is presented to the
               process, it will cause the process either to terminate,
               stop, ignore the signal, or terminate with a core dump
               depending on the signal's type (see <sys/signal.h>).




     Licensed material--property of copyright holder(s)         Page 1





     signal(2)                  DG/UX 4.30                   signal(2)



               If a core dump is indicated, the receiving process must
               have adequate permission to do so.

          SIG_IGN
               Ignore signal.

               The process's signal action vector entry for
               signal_number is set to `ignore'.  The set of blocked
               signals remains unchanged.

               When the signal signal_number is presented to the
               process, it will be discarded.

               SIGKILL cannot be ignored.

          Function address
               Catch signal.

               The process's signal action vector entry for
               signal_number is set to `catch'.  If the signal
               signal_number was pended and signal_number is not
               SIGKILL, the pended signal is lost.  The set of blocked
               signals remains unchanged.

               When the signal signal_number is sent to the process,
               it will cause the signal handler specified by action to
               be invoked.

               The following attributes are set for the signal action
               vector entry for signal_number:

             * The signal mask addend is cleared.  Thus, no additional
               signals will be blocked when the signal handler is
               invoked.

             * The signal stack choice specifies the current execution
               stack.  Thus, no stack change is made.

             * The new signal action is set to `default' unless the
               signal's new signal action is always `unchanged'.  For
               signals whose new signal action is set to `default',
               the occurrence of multiple signals may cause some
               signals to be lost or may cause the process to
               terminate.

             * The restart system call choice specifies that system
               calls interrupted by signal signal_number should not be
               restarted.


               The value of the signal action is not verified or
               access checked at the time of the call.  If it is



     Licensed material--property of copyright holder(s)         Page 2





     signal(2)                  DG/UX 4.30                   signal(2)



               invalid, results are undefined when the signal is
               caught.

               SIGKILL cannot be caught.

          After a fork, the child process inherits all software signal
          structures, except that the pending signal vector is
          cleared.

          Exec modifies the software signal structures in the
          following manner:

          1) The signal action for signals set to `catch' is changed
          to `default'.

          2) The signal stack context is discarded.

          3) All other software signal structures are unchanged.

          Setting the signal SIGCLD to SIG_IGN affects exit and wait
          in the following manner:

          1) The calling process's child processes will be cleaned up
          by the parent when the parent issues its next system call
          (checks signals).

          2) If the calling process later performs a wait operation,
          wait will suspend the calling process until all child
          processes have terminated and will return with the error
          condition ECHILD.

          Signal will fail, and the signal handler will be unchanged
          if an error occurs.

     ACCESS CONTROL
          No access is required to install a signal handler.

          The receiving process is granted permission to produce a
          core dump file provided:

          *    the effective-user-id and the real-user-id of the
               receiving process are equal, and

          *    the receiving process has adequate file system
               permission to create or rewrite the core dump file.

     RETURN VALUE
          old_action     Completed successfully. The previous signal
                         handler for signal_number is returned.


          -1             An error occurred.  Errno is set to indicate



     Licensed material--property of copyright holder(s)         Page 3





     signal(2)                  DG/UX 4.30                   signal(2)



                         the error.

     EXCEPTIONS
          Errno may be set to the following error code:

          EINVAL         Signal_number is an illegal signal number,
                         including SIGKILL.

     SEE ALSO
          kill(2), pause(2), ptrace(2), wait(2), berk_signal(3).

     STANDARDS
          When using m88kbcs as the Software Development Environment
          target, the signal function will be emulated using BCS
          system calls. Since this is an emulation requiring several
          BCS system calls, a slight performance degradation may be
          noticed in comparison to using signal in /lib/libc.a.






































     Licensed material--property of copyright holder(s)         Page 4



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026