summaryrefslogtreecommitdiff
path: root/src/stdlib/_Exit.c
blob: 50f1c37ff01f26bc17cec3aa9eef1ec41a5b7f46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <stdlib.h>
#include "_syscall.h"

/** cause normal program termination without handlers **/
_Noreturn void _Exit(int status)
{
	long scno = __syscall_lookup(exit);
	for (;;) {
		__syscall(scno, status);
	}
}

/***
The fn(exit) function causes the program to terminate normally, returning the
value arg(status) to the host environment.

No functions registered by fn(atexit) or fn(at_quick_exit) are called.
***/

/* UNSPECIFIED: - */
/* UNDEFINED: - */
/* IMPLEMENTATION: the successful termination value returned to the host environment when arg(status) is 0 of macro(EXIT_SUCESS) */
/* IMPLEMENTATION: the unsuccessful termination value returned to the host environment when arg(status) is macro(EXIT_FAILURE) */
/* IMPLEMENTATION: whether open streams are flushed */
/* IMPLEMENTATION: whether open streams are closed */
/* IMPLEMENTATION: whether temporary files are removed */
/* LOCALE: - */

/*
STDC(199901)
*/