Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Anchor
async-signal-safe
async-signal-safe

async-signal-safe function [ISO/IEC 9945:2008]
A function that may be invoked, without restriction, from signal-catching functions. No function [defined in ISO/IEC 9945] is async-signal-safe unless explicitly described as such. See also #asynchronousasynchronous-safe.

Anchor
asynchronous-safe
asynchronous-safe

asynchronous-safe function [GNU Pth]
A function is asynchronous-safe, or asynchronous-signal safe, if it can be called safely and without #side side effects from within a signal handler context. That is, it must be able to be interrupted at any point to run linearly out of sequence without causing an inconsistent state. It must also function properly when global data might itself be in an inconsistent state. Some asynchronous-safe operations are listed here:

...

Anchor
function-like macro
function-like macro

function-like macro [ISO/IEC 9899-1999]
A #define preprocessing directive that defines an identifier immediately followed by zero or more parameters, the ellipsis (...), or a combination of the two, enclosed in parentheses, similar syntactically to a function call. Subsequent instances of the macro name followed by a parenthesized list of arguments in a translation unit are replaced by the replacement list of preprocessing tokens that constitute the remainder of the directive. See also #objectobject-like macro and #unsafe unsafe function-like macro.

Anchor
hosted environment
hosted environment

hosted environment [ISO/IEC 9899-1999]
An environment that is not freestanding.  Program startup occurs at main(), complex types are implemented, and all C standard library facilities are available.

...

Anchor
indeterminate value
indeterminate value

indeterminate value [ISO/IEC 9899-1999]
Either an #unspecified unspecified value or a #trap trap representation.

Anchor
invalid pointer
invalid pointer

invalid pointer
A pointer that is not a #valid valid pointer.

Anchor
liveness
liveness

liveness
Every operation or method invocation executes to completion without interruptions, even if it goes against safety.

...

Anchor
normal termination
normal termination

normal termination [Open Group 2008]
Normal termination occurs by a return from main(), when requested with the exit(), _exit(), or _Exit() functions; or when the last thread in the process terminates by returning from its start function, by calling the pthread_exit() function, or through cancellation. See also #abnormal abnormal termination.

Anchor
object-like macro
object-like macro

object-like macro [ISO/IEC 9899-1999]
A #define preprocessing directive that defines an identifier with no parentheses. Subsequent instances of the macro name in a translation unit are replaced by the replacement list of preprocessing tokens that constitute the remainder of the directive. See also #functionfunction-like macro.

Anchor
reentrant
reentrant

reentrant [Dowd 2006]
A function is reentrant if multiple instances of the same function can run in the same address space concurrently without creating the potential for inconsistent states.

...

Anchor
sequence point
sequence point

sequence point C99 [ISO/IEC 9899-1999]
Evaluation of an expression may produce #side side effects. At specific points in the execution sequence called sequence points, all side effects of previous evaluations have completed, and no side effects of subsequent evaluations have yet taken place.

...

Anchor
trap representation
trap representation

trap representation [ISO/IEC 9899-1999]
Object representation that does not represent a value of the object type. Attempting to read the value of an object that has a trap representation other than by an expression that has a character type is undefined. Producing such a representation by a #side side effect that modifies all or any part of the object other than by an expression that has a character type is undefined.

...

Anchor
unsafe function-like macro
unsafe function-like macro

unsafe function-like macro
A #functionfunction-like macro whose expansion causes one or more of its arguments not to be evaluated exactly once.

...

Anchor
unspecified value
unspecified value

unspecified value [ISO/IEC 9899-1999]
A valid value of the relevant type where the C Standard imposes no requirements on which value is chosen in any instance. An unspecified value cannot be a #trap trap representation.

Anchor
valid pointer
valid pointer

valid pointer
A pointer that refers to an element within an array or one past the last element of an array. For the purposes of this definition, a pointer to an object that is not an element of an array behaves the same as a pointer to the first element of an array of length one with the type of the object as its element type. (Cf 6.5.8p3)
For the purposes of this definition, an object can be considered to be an array of a certain number of bytes; that number is the size of the object, as produced by the sizeof operator.

...