man(1) Manual page archive


     EXITS(2)                                                 EXITS(2)

     NAME
          exits, atexit, atexitdont - terminate process, process
          cleanup

     SYNOPSIS
          void _exits(char *msg)
          void exits(char *msg)

          int  atexit(void(*)(void))

          void atexitdont(void(*)(void))

     DESCRIPTION
          Exits is the conventional way to terminate a process.
          _Exits is the underlying system call.  They can never
          return.

          Msg conventionally includes a brief (maximum length ERRLEN)
          explanation of the reason for exiting, or a null pointer or
          empty string to indicate normal termination.  The string is
          passed to the parent process, prefixed by the name and pro-
          cess id of the exiting process, when the parent does a
          wait(2).

          Before calling _exits with msg as an argument, exits calls
          in reverse order all the functions recorded by atexit.

          Atexit records fn as a function to be called by exits. It
          returns zero if it failed, nonzero otherwise.  A typical use
          is to register a cleanup routine for an I/O package.

          Calling atexit twice (or more) with the same function argu-
          ment causes exits to invoke the function twice (or more).

          There is a limit to the number of exit functions that will
          be recorded; atexit returns 0 if that limit has been
          reached.

          Atexitdont cancels a previous registration of an exit func-
          tion, which is useful after a fork(2) to avoid conflicting
          calls of an exit function

     SEE ALSO
          fork(2), wait(2)