Middleware, development tools, realtime operating system
software and services for superior embedded design


Home
QNX Community Resources
Developer Support
QNX Documentation Library
QNX Developer Support

QNX Developer Support

QNX Software Systems
Developer Resources
Blogs
Board support packages
Foundry27 projects
Forums
Hardware support listing
Online video tutorials
Product documentation
Technical Articles

[Previous] [Contents] [Index] [Next]

atexit()

Register functions to be called during normal program termination

Synopsis:

#include <stdlib.h>

int atexit( register void (*func)(void) );

Arguments:

func
A pointer to the function you want to be called when the program terminates normally. This function has no arguments and doesn't return a value; its prototype should be:
void func( void );
  

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The atexit() function registers a function to be called when the program terminates normally. If you register more than one function with atexit(), they're executed in a "last-in, first-out" order. Normal termination occurs either by a call to exit() or a return from main().

You can register a total of 32 functions with atexit().


Note: The functions registered with atexit() aren't called when the program terminates with a call to _exit().

Returns:

0 for success, or nonzero if an error occurs.

Examples:

#include <stdio.h>
#include <stdlib.h>

void func1( void )
{
    printf( "last.\n" );
}

void func2( void )
{
    printf( "this " );
}

void func3( void )
{
    printf( "Do " );
}

int main( void )
{
    atexit( func1 );
    atexit( func2 );
    atexit( func3 );

    printf( "Do this first.\n" );

    return EXIT_SUCCESS;
}

produces the output:

Do this first.
Do this last.

Classification:

ANSI, POSIX 1003.1

Safety:
Cancellation point No
Interrupt handler No
Signal handler No
Thread Yes

See also:

abort(), _exit(), exit()


[Previous] [Contents] [Index] [Next]