A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://timsong-cpp.github.io/cppwp/n4659/support.start.term below:

[support.start.term]

21 Language support library [language.support] 21.5 Start and termination [support.start.term]

[Note: The header <cstdlib> declares the functions described in this subclause. end note]

[[noreturn]] void _Exit(int status) noexcept;

Effects: This function has the semantics specified in the C standard library.

Remarks: The program is terminated without executing destructors for objects of automatic, thread, or static storage duration and without calling functions passed to atexit() ([basic.start.term]). The function _­Exit is signal-safe ([csignal.syn]).

[[noreturn]] void abort() noexcept;

Effects: This function has the semantics specified in the C standard library.

Remarks: The program is terminated without executing destructors for objects of automatic, thread, or static storage duration and without calling functions passed to atexit() ([basic.start.term]). The function abort is signal-safe ([csignal.syn]).

int atexit(c-atexit-handler* f) noexcept; int atexit(atexit-handler* f) noexcept;

Effects: The atexit() functions register the function pointed to by f to be called without arguments at normal program termination. It is unspecified whether a call to atexit() that does not happen before a call to exit() will succeed. [Note: The atexit() functions do not introduce a data race ([res.on.data.races]). end note]

Implementation limits: The implementation shall support the registration of at least 32 functions.

Returns: The atexit() function returns zero if the registration succeeds, nonzero if it fails.

[[noreturn]] void exit(int status);

Effects:

int at_quick_exit(c-atexit-handler* f) noexcept; int at_quick_exit(atexit-handler* f) noexcept;

Effects: The at_­quick_­exit() functions register the function pointed to by f to be called without arguments when quick_­exit is called. It is unspecified whether a call to at_­quick_­exit() that does not happen before all calls to quick_­exit will succeed. [Note: The at_­quick_­exit() functions do not introduce a data race ([res.on.data.races]). end note] [Note: The order of registration may be indeterminate if at_­quick_­exit was called from more than one thread. end note] [Note: The at_­quick_­exit registrations are distinct from the atexit registrations, and applications may need to call both registration functions with the same argument. end note]

Implementation limits: The implementation shall support the registration of at least 32 functions.

Returns: Zero if the registration succeeds, nonzero if it fails.

[[noreturn]] void quick_exit(int status) noexcept;

Effects: Functions registered by calls to at_­quick_­exit are called in the reverse order of their registration, except that a function shall be called after any previously registered functions that had already been called at the time it was registered. Objects shall not be destroyed as a result of calling quick_­exit. If control leaves a registered function called by quick_­exit because the function does not provide a handler for a thrown exception, std​::​terminate() shall be called. [Note: A function registered via at_­quick_­exit is invoked by the thread that calls quick_­exit, which can be a different thread than the one that registered it, so registered functions should not rely on the identity of objects with thread storage duration. end note] After calling registered functions, quick_­exit shall call _­Exit(status). [Note: The standard file buffers are not flushed. end note]

Remarks: The function quick_­exit is signal-safe ([csignal.syn]) when the functions registered with at_­quick_­exit are.

See also: [basic.start], [basic.start.term], ISO C 7.22.4.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4