MISRA.STDLIB.ABORTUse of abort, exit, getenv or system from library stdlib.h.
MISRA C 2012 Rule 21.8: The library functions abort, exit, getenv and system of <stdlib.h> shall not be usedC90 [Undefined 93; Implementation 70–73] C99 [Undefined 172, 174, 175; Implementation J.3.12(36–38)] Category: Required Analysis: Decidable, Single Translation Unit Applies to: C90, C99 AmplificationThe identifiers abort, exit, getenv and system shall not be used and no macro with one of these names shall be expanded. RationaleThese functions have undefined and implementation-defined behaviours associated with them. MISRA-C 2004 Rule 20.11 (required): The library functions ''abort, exit, getenv'' and ''system'' from library ''<stdlib.h>'' shall not be used.Use of 'abort', 'exit', 'getenv' or 'system' from library stdlib.h. [Undefined 93; Implementation 70—73] These functions will not normally be required in an embedded system, which does not normally need to communicate with an environment. If the functions are found necessary in an application, then it is essential to check on the implementation-defined behaviour of the function in the environment in question. MISRA-C++ 2008 Rule 18-0-3 (required): The library functions ''abort, exit, getenv'' and ''system'' from library ''<cstdlib>'' shall not be used.RationaleThe use of these functions leads to implementation-defined behaviour. Example#include <cstdlib> void f ( ) { exit ( 0 ); // Non-compliant } |