![]() Chapter Contents |
![]() Previous |
![]() Next |
| exit |
| Portability: | ISO/ANSI C conforming, UNIX compatible |
| SYNOPSIS | |
| DESCRIPTION | |
| RETURN VALUE | |
| ERRORS | |
| PORTABILITY | |
| IMPLEMENTATION | |
| EXAMPLE | |
| RELATED FUNCTIONS | |
| SEE ALSO |
| SYNOPSIS |
#include <stdlib.h> void exit(int code);
| DESCRIPTION |
exit
terminates the program after closing all files. The integer argument
code
is used in an implementation-defined way
to indicate the results of execution. Usually, a code of
EXIT_SUCCESS
indicates successful execution, and a code of
EXIT_FAILURE
indicates an unsuccessful execution.
| RETURN VALUE |
Control does not return from
exit
.
| ERRORS |
User ABEND 1203 or 1209 may be issued
by
exit
if memory management data areas
have been overlaid.
| PORTABILITY |
exit
is generally portable, although any meaning associated with the
code
argument is not. Some systems only treat the last 8 bits of the
code
as significant, so codes from 0 to 255 are
recommended for maximum portability.
Many C implementations also support a routine named
_exit
to terminate execution without closing
files. This routine is available only when USS under OS/390 is installed.
| IMPLEMENTATION |
exit
is implemented as a
longjmp
to a target
defined in the library routine that calls
main
. Therefore, it can be intercepted with
blkjmp
.
On IBM's 370 system,
EXIT_SUCCESS
is 0 and
EXIT_FAILURE
is 16. The
exit code is used as an OS/390 or CMS return code. Under OS/390, a code that
is not between 0 and 4095 is changed to 4095.
| EXAMPLE |
This example shows how to exit a program if it is not called with a valid input filename:
#include <stdlib.h>
#include <stdio.h>
main(int argc, char *argv[])
{
FILE *f;
if (argc > 1){
f = fopen(argv[1],"r");
if (f == NULL){
fprintf(stderr,
"Can't open file \"%s\"\n", argv[1]);
exit(EXIT_FAILURE);
}
fclose(f);
puts("File successfully opened and closed.");
exit(EXIT_SUCCESS);
}
else{
fprintf(stderr,"No file specified.\n");
exit(EXIT_FAILURE);
}
}
| RELATED FUNCTIONS |
abort
,
atexit
,
blkjmp
,
coexit
,
_exit
| SEE ALSO |
![]() Chapter Contents |
![]() Previous |
![]() Next |
![]() Top of Page |
Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.