From cppreference.com
< c‎ | program
void _Exit( int exit_code );
(since C99)
(until C11)
_Noreturn void _Exit( int exit_code );
(since C11)

Causes normal program termination to occur without completely cleaning the resources.

Destructors of variables with automatic, thread local and static storage durations are not called. Functions passed to at_quick_exit() or atexit() are not called. Whether open resources such as files are closed is implementation defined. If exit_code is EXIT_FAILURE, an implementation-defined status, indicating unsuccessful termination, is returned. In other cases implementation-defined status value is returned.


exit_code - exit status of the program

Return value



#include <stdlib.h>
#include <stdio.h>
/* _Exit does not call functions registered with atexit. */
void f1(void)
    puts("pushed first");
void f2(void)
    puts("pushed second");
int main(void)
    printf("Enter main()\n");
    fflush(stdout);   /* _Exit does not flush unwritten buffered data */


Enter main()


  • C11 standard (ISO/IEC 9899:2011):
  • The _Exit function (p: 352)
  • C99 standard (ISO/IEC 9899:1999):
  • The _Exit function (p: 316)

See also

causes abnormal program termination (without cleaning up)
causes normal program termination with cleaning up