You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 44 Next »


abnormal termination [Open Group 08]
Abnormal termination occurs when requested by the abort() function or when some signals are received. See also normal termination.


application binary interface
An interface between two independently compiled modules of a program.  An Application Binary Interface document specifies a set of conventions such as the order and location of function arguments that compilers must adhere to in order to achieve interoperability between such modules.


asynchronous-safe [GNU Pth]
A function is asynchronous-safe, or asynchronous-signal safe, if it can be called safely and without side effects from within a signal handler context. That is, it must be able to be interrupted at any point and 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:

  • Call the signal() function to reinstall a signal handler
  • Unconditionally modify a volatile sig_atomic_t variable (as modification to this type is atomic)
  • Call the _Exit() function to immediately terminate program execution
  • Invoke an asynchronous-safe function, as specified by your implementation

Few functions are asynchronous-safe. If a function performs any other operations, it is probably not asynchronous-safe.


availability [IEEE Std 610.12 1990]
The degree to which a system or component is operational and accessible when required for use. Often expressed as a probability.


basic exception safety [Stroustrup 01], [Sutter 00]
The basic exception safety guarantee is a property of an operation such that, if the operation terminates by raising an exception, it preserves program state invariants and prevents resource leaks. See also exception safety, strong exception safety, and no-throw guarantee.


condition predicate
An expression constructed from the variables of a function that must be true for a thread to be allowed to continue execution.


clang
An open source C and C++ compiler. More information can be found at http://clang.llvm.org/.

critical sections

Code that accesses shared data, and that would otherwise be protected from data races.

cv-qualify

A type that is qualified by either const or volatile.


data race [ISO/IEC N3000]
The execution of a program contains a data race if it contains two conflicting actions in different threads, at least one of which is not atomic, and neither happens before the other. Any such data race results in undefined behavior.


deadlock
A condition where one or more threads is unable to continue execution because it is blocked waiting for some thread (including itself) to satisfy some condition.


denial-of-service attack
An attempt to make a computer resource unavailable to its intended users.


diagnostic message
 [ISO/IEC 14882-2014]
A diagnostic message is a message belonging to an implementation-defined subset of the implementation’s message output. A diagnostic message may indicate a constraint violation or a valid but questionable language construct. Messages typically include the file name and line number pointing to the offending code construct. In addition, implementations also often indicate the severity of the problem. Although the C++ Standard does not specify any such requirement, the most severe problems often cause implementations to fail to fully translate a translation unit. Diagnostics output in such cases are termed errors. Other problems may cause implementations simply to issue a warning message and continue translating the rest of the program. See error message and warning message.

 
error message

A diagnostic message generated when source code is encountered that prevents an implementation from translating a translation unit. See diagnostic message and warning message.


error tolerance [IEEE Std 610.12 1990]
The ability of a system or component to continue normal operation despite the presence of erroneous inputs.


exception safety [Stroustrup 01]
An operation on an object is said to be exception safe if that operation leaves the object in a valid state when the operation is terminated by throwing an exception. See also basic exception safety, strong exception safety, and no-throw guarantee.


exploit [Seacord 05a]
An exploit is a piece of software or technique that takes advantage of a security vulnerability to violate an explicit or implicit security policy.


fail safe [IEEE Std 610.12 1990]
Pertaining to a system or component that automatically places itself in a safe operating mode in the event of a failure; for example, a traffic light that reverts to blinking red in all directions when normal operation fails.


fail soft [IEEE Std 610.12 1990]
Pertaining to a system or component that continues to provide partial operational capability in the event of certain failures; for example, a traffic light that continues to alternate between red and green if the yellow light fails.


fatal diagnostic

A diagnostic message which causes an implementation not to perform the translation.


fault tolerance [IEEE Std 610.12 1990]
The ability of a system or component to continue normal operation despite the presence of hardware or software faults.


free store [ISO/IEC 14882-2003]
Storage managed by the C++ allocation and deallocation functions ::operator new(std::size_t), ::operator delete(void*), their array forms ::operator new[](std::size_t), ::operator delete[](void*), overloads of said functions on std::nothrow_t, any user-defined replacements for said functions, as well as any such functions defined as a member of a class. Storage in the free store is distinct from storage managed by the C functions calloc, free, malloc, and realloc.


freestanding implementation [ISO/IEC 14882-2003]
A freestanding implementation is one in which execution may take place without the benefit of an operating system, and has an implementation-defined set of libraries that includes certain language-support libraries. Also referred to as freestanding environment.


gcc
An open source C and C++ compiler. More information can be found at https://gcc.gnu.org/.


hosted implementation [ISO/IEC 14882-2003]
An implementation that is not freestanding. Program startup occurs at main(), complex types are implemented, and all C++ standard library facilities are available. Also referred to as hosted environment.


ill-formed program [