Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ signal(2) — DG/UX 4.00

Media Vault

Software Library

Restoration Projects

Artifacts Sought



                                                                signal(2)



        _________________________________________________________________
        signal                                                System Call
        Specify what to do upon presentation of a signal.
        _________________________________________________________________


        SYNTAX

        #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

        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 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.

        SIGDFL - 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 to either terminate, stop, ignore the
        signal, or terminate with a core dump depending on the signal's
        type (see signal.h).

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




        DG/UX 4.00                                                 Page 1
               Licensed material--property of copyright holder(s)





                                                                signal(2)



        SIGIGN - 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 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.



        DG/UX 4.00                                                 Page 2
               Licensed material--property of copyright holder(s)





                                                                signal(2)



        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.




























        DG/UX 4.00                                                 Page 3
               Licensed material--property of copyright holder(s)





                                                                signal(2)



        RETURN VALUE

        <old_action>   Completed successfully. The previous signal
                       handler for <signal_number> is returned.


        -1             An error occurred.  Errno is set to indicate the
                       error.


        EXCEPTIONS

        Errno may be set to the following error code:


        EINVAL         <Signal_number> is an illegal signal number,
                       including SIGKILL.


        SEE ALSO

        The related system calls:  kill, pause, ptrace, wait.
        The related manual sections:  setjmp(3C), kill(1) in the User's
        Reference for the DG/UX System






























        DG/UX 4.00                                                 Page 4
               Licensed material--property of copyright holder(s)



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