Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /* xexit.c -- Run any exit handlers, then exit.
  2.    Copyright (C) 1994, 95, 1997 Free Software Foundation, Inc.
  3.  
  4. This file is part of the libiberty library.
  5. Libiberty is free software; you can redistribute it and/or
  6. modify it under the terms of the GNU Library General Public
  7. License as published by the Free Software Foundation; either
  8. version 2 of the License, or (at your option) any later version.
  9.  
  10. Libiberty is distributed in the hope that it will be useful,
  11. but WITHOUT ANY WARRANTY; without even the implied warranty of
  12. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  13. Library General Public License for more details.
  14.  
  15. You should have received a copy of the GNU Library General Public
  16. License along with libiberty; see the file COPYING.LIB.  If not, write
  17. to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
  18. Boston, MA 02110-1301, USA.  */
  19.  
  20. /*
  21.  
  22. @deftypefn Replacement void xexit (int @var{code})
  23.  
  24. Terminates the program.  If any functions have been registered with
  25. the @code{xatexit} replacement function, they will be called first.
  26. Termination is handled via the system's normal @code{exit} call.
  27.  
  28. @end deftypefn
  29.  
  30. */
  31.  
  32. #ifdef HAVE_CONFIG_H
  33. #include "config.h"
  34. #endif
  35. #include <stdio.h>
  36. #ifdef HAVE_STDLIB_H
  37. #include <stdlib.h>
  38. #endif
  39. #include "libiberty.h"
  40.  
  41.  
  42. /* This variable is set by xatexit if it is called.  This way, xmalloc
  43.    doesn't drag xatexit into the link.  */
  44. void (*_xexit_cleanup) (void);
  45.  
  46. void
  47. xexit (int code)
  48. {
  49.   if (_xexit_cleanup != NULL)
  50.     (*_xexit_cleanup) ();
  51.   exit (code);
  52. }
  53.