gmtime

Defined in header <time.h> struct tm *gmtime( const time_t *time ); (1) struct tm *gmtime_s(const time_t *restrict time, struct tm *restrict result); (2) (since C11) 1) Converts given time since epoch (a time_t value pointed to by time) into calendar time, expressed in Coordinated Universal Time (UTC) in the struct tm format. The result is stored in static storage and a pointer to that static storage is returned. 2) Same as (1), except that the function uses user-pr

Objects and alignment

C programs create, destroy, access, and manipulate objects. An object, in C, is region of data storage in the execution environment, the contents of which can represent values (a value is the meaning of the contents of an object, when interpreted as having a specific type). Every object has. size (can be determined with sizeof) alignment requirement (can be determined by alignof) (since C11) storage duration (automatic, static, allocated, thread-local) lifetime (equal to storage duration

fgets

Defined in header <stdio.h> char *fgets( char *str, int count, FILE *stream ); (until C99) char *fgets( char *restrict str, int count, FILE *restrict stream ); (since C99) Reads at most count - 1 characters from the given file stream and stores them in str. The produced character string is always null-terminated. Parsing stops if end-of-file occurs or a newline character is found, in which case str will contain that newline character. Parameters

ATOMIC_*_LOCK_FREE

Defined in header <stdatomic.h> #define ATOMIC_BOOL_LOCK_FREE /* implementation-defined */ #define ATOMIC_CHAR_LOCK_FREE /* implementation-defined */ #define ATOMIC_CHAR16_T_LOCK_FREE /* implementation-defined */ #define ATOMIC_CHAR32_T_LOCK_FREE /* implementation-defined */ #define ATOMIC_WCHAR_T_LOCK_FREE /* implementation-defined */ #define ATOMIC_SHORT_LOCK_FREE /* implementation-defined */ #define ATOMIC_INT_LOCK_FREE /* implementation-defined */ #define ATOM

cbrt

Defined in header <math.h> float cbrtf( float arg ); (1) (since C99) double cbrt( double arg ); (2) (since C99) long double cbrtl( long double arg ); (3) (since C99) Defined in header <tgmath.h> #define cbrt( arg ) (4) (since C99) 1-3) Computes the cubic root of arg. 4) Type-generic macro: If arg has type long double, cbrtl is called. Otherwise, if arg has integer type or the type double, cbrt is called. Otherwise, cbrtf is called

ungetwc

Defined in header <wchar.h> wint_t ungetwc( wint_t ch, FILE *stream ); (since C95) Puts the wide character ch back to the given file stream. Only one wide character pushback is guaranteed. Parameters ch - wide character to be put back stream - file stream to put the wide character back to Return value On success ch is returned. On failure WEOF is returned and the given stream remains unchanged. References C11 standard (ISO/IEC 9899:2011): 7.29.3.10

Increment/decrement operators

Increment/decrement operators are unary operators that increment/decrement the value of a variable by 1. They can have postfix form: expr ++ expr -- As well as the prefix form: ++ expr -- expr The operand expr of both prefix and postfix increment or decrement must be a modifiable lvalue of integer type (including _Bool and enums), real floating type, or a pointer type. It may be cvr-qualified, unqualified, or atomic. The result of the postfix increment and decrement

Typedef declaration

The typedef declaration provides a way to declare an identifier as a type alias, to be used to replace a possibly complex type name. The keyword typedef is used in a declaration, in the grammatical position of a storage-class specifier, except that it does not affect storage or linkage: typedef int int_t; // declares int_t to be an alias for the type int typedef char char_t, *char_p, (*fp)(void); // declares char_t to be an alias for char // char_p to

thread_local

Defined in header <threads.h> #define thread_local _Thread_local (since C11) Convenience macro which can be used to specify that an object has thread-local storage duration. References C11 standard (ISO/IEC 9899:2011): 7.26.1/3 thread_local (p: 376)

gets

Defined in header <stdio.h> char *gets( char *str ); (until C11) char *gets_s( char *str, rsize_t n ); (since C11) (optional) 1) Reads stdin into the character array pointed to by str until a newline character is found or end-of-file occurs. A null character is written immediately after the last character read into the array. The newline character is discarded but not stored in the buffer. 2) Reads characters from stdin until a newline is found or end-of-file occurs