/* * Copyright (c) 1990 Regents of the University of California. * All rights reserved. * * %sccs.include.redist.c% */ /* FUNCTION <>---end program execution INDEX exit ANSI_SYNOPSIS #include void exit(int <[code]>); TRAD_SYNOPSIS #include void exit(<[code]>) int <[code]>; DESCRIPTION Use <> to return control from a program to the host operating environment. Use the argument <[code]> to pass an exit status to the operating environment: two particular values, <> and <>, are defined in `<>' to indicate success or failure in a portable fashion. <> does two kinds of cleanup before ending execution of your program. First, it calls all application-defined cleanup functions you have enrolled with <>. Second, files and streams are cleaned up: any pending output is delivered to the host system, each open file or stream is closed, and files created by <> are deleted. RETURNS <> does not return to its caller. PORTABILITY ANSI C requires <>, and specifies that <> and <> must be defined. Supporting OS subroutines required: <<_exit>>. */ #include #include /* for _exit() declaration */ #include #ifndef _REENT_ONLY /* * Exit, flushing stdio buffers if necessary. */ void _DEFUN (exit, (code), int code) { register struct _atexit *p; register int n; for (p = _REENT->_atexit; p; p = p->_next) for (n = p->_ind; --n >= 0;) (*p->_fns[n]) (); if (_REENT->__cleanup) (*_REENT->__cleanup) (_REENT); _exit (code); } #endif