NULL

Defined in header <stddef.h> Defined in header <string.h> Defined in header <wchar.h> Defined in header <time.h> Defined in header <locale.h> Defined in header <stdio.h> #define NULL /*implementation-defined*/ Expands into implementation-defined null-pointer constant. Example #include <stdlib.h> struct S; void(*f)() = NULL; int main(void) { char *ptr = malloc(sizeof(char)*10); if (pt

nextafter

Defined in header <math.h> float nextafterf( float from, float to ); (1) (since C99) double nextafter( double from, double to ); (2) (since C99) long double nextafterl( long double from, long double to ); (3) (since C99) float nexttowardf( float from, long double to ); (4) (since C99) double nexttoward( double from, long double to ); (5) (since C99) long double nexttowardl( long double from, long double to ); (6) (since C99)

nearbyint

Defined in header <math.h> float nearbyintf( float arg ); (1) (since C99) double nearbyint( double arg ); (2) (since C99) long double nearbyintl( long double arg ); (3) (since C99) Defined in header <tgmath.h> #define nearbyint( arg ) (4) (since C99) 1-3) Rounds the floating-point argument arg to an integer value in floating-point format, using the current rounding mode. 4) Type-generic macro: If arg has type long double, nearbyin

NAN

Defined in header <math.h> #define NAN /*implementation defined*/ (since C99) The macro NAN expands to constant expression of type float which evaluates to a quiet not-a-number (QNaN) value. If the implementation does not support QNaNs, this macro constant is not defined. Notes There are many different NaN values, differentiated by their payloads and their sign bits. The contents of the payload and the sign bit of the NaN generated by the macro NAN are implementation-def

nan

Defined in header <math.h> float nanf( const char* arg ); (since C99) double nan( const char* arg ); (since C99) long double nanl( const char* arg ); (since C99) Converts the implementation-defined character string arg into the corresponding quiet NaN value, as if by calling strtod, strtof, or strtold, respectively, as follows: The call nan("string") is equivalent to the call strtod("NAN(string)", (char**)NULL);. The call nan("") is equivalent to the

mtx_unlock

Defined in header <threads.h> int mtx_unlock( mtx_t *mutex ); (since C11) Unlocks the mutex pointed to by mutex. The behavior is undefined if the mutex is not locked by the calling thread. This function synchronizes-with subsequent mtx_lock, mtx_trylock, or mtx_timedlock on the same mutex. All lock/unlock operations on any given mutex form a single total order (similar to the modification order of an atomic). Parameters mutex - pointer to the mutex to unlock Re

mtx_trylock

Defined in header <threads.h> int mtx_trylock( mtx_t *mutex ); (since C11) Tries to lock the mutex pointed to by mutex without blocking. Returns immediately if the mutex is already locked. Prior calls to mtx_unlock on the same mutex synchronize-with this operation (if this operation succeeds), and all lock/unlock operations on any given mutex form a single total order (similar to the modification order of an atomic). Parameters mutex - pointer to the mutex to lock

mtx_timedlock

Defined in header <threads.h> int mtx_timedlock( mtx_t *restrict mutex, const struct timespec *restrict time_point ); (since C11) Blocks the current thread until the mutex pointed to by mutex is locked or until the TIME_UTC based time point pointed to by time_point has been reached. The behavior is undefined if the current thread has already locked the mutex and the mutex is not recursive. The behavior is undefined if the mutex does not support timeout. P

mtx_plain

Defined in header <threads.h> enum { mtx_plain = /* unspecified */, mtx_recursive = /* unspecified */, mtx_timed = /* unspecified */ }; (since C11) When passed to mtx_init, identifies the type of a mutex to create. Constant Explanation mtx_plain plain mutex mtx_recursive recursive mutex mtx_timed timed mutex References C11 standard (ISO/IEC 9899:2011): 7.26.1/5 mtx_plain, mtx_recursive, mtx_timed (p: 377) See also mtx_init (C11)

mtx_lock

Defined in header <threads.h> int mtx_lock( mtx_t* mutex ); (since C11) Blocks the current thread until the mutex pointed to by mutex is locked. The behavior is undefined if the current thread has already locked the mutex and the mutex is not recursive. Prior calls to mtx_unlock on the same mutex synchronize-with this operation, and all lock/unlock operations on any given mutex form a single total order (similar to the modification order of an atomic). Parameters mutex