Macro used for internal error detection. (Ignored if NDEBUG is defined where <assert.h> is included.) If expression equals zero, message printed on <a href="stderr">stderr</a> and abort called to terminate execution. Source filename and line number in message are from preprocessor macros __FILE__ and __LINE__.
<a href="isalpha">isalpha</a>(c) or <a href="isdigit">isdigit</a>(c)
<a href="isupper">isupper</a>(c) or <a href="islower">islower</a>(c)
is control character. In ASCII, control characters are 0x00 (NUL) to 0x1F (US), and 0x7F (DEL)
is printing character other than space
is printing character (including space). In ASCII, printing characters are 0x20 (' ') to 0x7E ('~')
is printing character other than space, letter, digit
is space, formfeed, newline, carriage return, tab, vertical tab
return lower-case equivalent
return upper-case equivalent
code used for domain errors
code used for range errors
object to which certain library functions assign specific positive values on error
The precision (in decimal digits) of the type double.
The smallest double x such that 1.0 + x != 1.0
The number of digits of a double, base FLT_RADIX, in mantissa
The maximum value of a double
The largest positive integer exponent to which FLT_RADIX can be raised and remain representable
The minimum normalized double value.
The smallest negative integer exponent to which FLT_RADIX can be raised and remain representable
The precision (in decimal digits) of the type float.
The smallest float x such that 1.0 + x != 1.0
The number of digits of a float, base FLT_RADIX, in mantissa
The maximum value of a float
The largest positive integer exponent to which FLT_RADIX can be raised and remain representable
The minimum normalized float value.
The smallest negative integer exponent to which FLT_RADIX can be raised and remain representable
radix of floating-point representations
floating-point rounding mode
The precision (in decimal digits) of the type long double.
The smallest long double x such that 1.0 + x != 1.0
The number of digits of a long double, base FLT_RADIX, in mantissa
The maximum value of a long double.
The largest positive integer exponent to which FLT_RADIX can be raised and remain representable
The minimum normalized long double value.
The smallest negative integer exponent to which FLT_RADIX can be raised and remain representable
maximum value of type char
minimum value of type char
maximum value of type int
minimum value of type int
maximum value of type long
minimum value of type long
maximum value of type signed char
minimum value of type signed char
maximum value of type short
minimum value of type short
maximum value of type unsigned char
maximum value of type unsigned int
maximum value of type unsigned long
maximum value of type unsigned short
category argument for all categories
category for information affecting collating functions
category for information affecting character class tests functions
category for monetary formatting information
category for numeric formatting information
category for information affecting time conversions functions
returns pointer to formatting information for current locale
char*|A string describing the new locale or <a href="NULL">NULL</a> on error.
Sets components of locale according to specified category and locale. (Implementations are permitted to define values of category additional to those describe here.)
Describes formatting of monetary and other numeric values:
decimal point for non-monetary values
sizes of digit groups for non-monetary values
separator for digit groups for non-monetary values (left of "decimal point")
international currency symbol
decimal point for monetary values
sizes of digit groups for monetary values
separator for digit groups for monetary values (left of "decimal point")
negative sign for monetary values
positive sign for monetary values
number of digits to be displayed to right of "decimal point" for monetary values
number of digits to be displayed to right of "decimal point" for international monetary values
whether currency symbol precedes (1) or follows (0) negative monetary values
whether currency symbol is (1) or is not (0) separated by space from negative monetary values
format for negative monetary values:
parentheses surround quantity and currency symbol
sign precedes quantity and currency symbol
sign follows quantity and currency symbol
sign immediately precedes currency symbol
sign immediately follows currency symbol
whether currency symbol precedes (1) or follows (0) positive monetary values
whether currency symbol is (1) or is not (0) separated by space from non-negative monetary values
format for non-negative monetary values, with values as for n_sign_posn
Implementations may change field order and include additional fields. Standard C Library functions use only decimal_point.
smallest integer not less than x
largest integer not greater than x
if y non-zero, floating-point remainder of x/y, with same sign as x; if y zero, result is implementation-defined
if x non-zero, returns value, with absolute value in interval [1/2, 1), and assigns to *exp integer such that product of return value and 2 raised to the power *exp equals x; if x zero, both return value and *exp are zero
magnitude returned (with correct sign) on overflow error
returns fractional part and assigns to *ip integral part of x, both with same sign as x
type of object holding context information
Restores context saved by most recent call to setjmp with specified env. Execution resumes as a second return from setjmp, with returned value val if specified value non-zero, or 1 otherwise.
Saves context information in env and returns zero. Subsequent call to longjmp with same env returns non-zero.
Sends signal sig. Returns zero on success.
specifies default signal handling
signal return value indicating error
specifies that signal should be ignored
(asynchronous) interactive attention
(asynchronous) termination request
Yields value of the type (type) and value of the next unnamed argument.
Termination macro which must be called once after argument processing and before exit from function.
type of object holding context information
Initialisation macro which must be called once before any unnamed argument is accessed. Stores context information in ap. lastarg is the last named parameter of the function.
Offset (in bytes) of member m from start of structure type stype.
Type for objects declared to store result of subtracting pointers.
Type for objects declared to store result of sizeof operator.
Value for mode argument to setvbuf specifying full buffering.
Value for mode argument to setvbuf specifying line buffering.
Value for mode argument to setvbuf specifying no buffering.
Size of buffer used by setbuf.
FILE* stream|Pointer to a file structure.
Clears end-of-file and error indicators for stream <em>stream</em>.
Value used to indicate end-of-stream or to report an error.
int|0 if the stream is successfully closed, or <a href="EOF">EOF</a> on error.
FILE* stream|A pointer to a file structure
Closes stream <em>stream</em> (after flushing, if output stream). Returns <a href="EOF">EOF</a> on error, zero otherwise.
int|Nonzero if a read operation has attempted to read past the end of the file; 0 otherwise.
FILE* stream|Pointer to a file structure.
Determines whether the end of <em>stream</em> has been passed. When the end of file
is passed, read operations return an end-of-file indicator until the stream is closed or
until <a href="rewind">rewind</a>, <a href="fsetpos">fsetpos</a>, <a href="fseek">fseek</a>,
or <a href="clearerr">clearerr</a> is called against it.
int|0 if no error has occurred on <em>stream</em>, nonzero otherwise.
FILE* stream|Pointer to a file structure.
Tests for a reading or writing error on the file associated with <em>stream</em>. If
an error has occurred, the error indicator for the stream remains set until the stream
is closed or rewound, or until <a href="clearerr">clearerr</a> is called against it.
int|0 on success or <a href="EOF">EOF</a> on error. Effect undefined for input stream.
FILE* stream|Pointer to a file structure. <b>fflush</b>(<a href="NULL">NULL</a>) flushes all output streams.
int|The character read, as an <b>int</b> or <a href="EOF">EOF</a> on end-of-file or error.
FILE* stream|Pointer to a file structure.
Reads a character from a stream.
int|0 on success, non-zero on error.
FILE* stream|Pointer to a file structure.
fpos_t* ptr|Position indicator storage.
Gets <em>stream</em>'s file position indicator.
char*|<a href="NULL">NULL</a> on end-of-file or error, str otherwise. Use <a href="feof">feof</a> or <a href="ferror">ferror</a> to determine whether an error occurred.
char* str|The storage location for the string.
int n|The maximum number of characters to read.
FILE* stream|Pointer to a file structure.
Copies characters from (input) stream <em>stream</em> to <em>str</em>, stopping when n-1 characters copied, newline copied, end-of-file reached or error occurs. If no error, str is NUL-terminated.
Type of object holding information necessary to control a stream.
Maximum length required for array of characters to hold a filename.
FILE*|A pointer to the open file. A null pointer indicates an error.
const char* filename|The name of the file to open.
const char* mode|The type of access required.
Opens file named filename and returns a stream, or <a href="NULL">NULL</a> on failure. mode may be one of the following for text files:
text update (reading and writing)</li>
text update, discarding previous content (if any)</li>
text append, reading, and writing at end</li>
or one of those strings with b included (after the first character), for binary files.
Maximum number of files which may be open simultaneously.
Type for objects declared to store file position information.
int|The number of bytes written, or a negative value if an error occurred.
FILE* stream|A pointer to the file to write to.
const char* format|A format control string.
Converts (according to format format) and writes output to stream <em>stream</em>. Number of characters written, or negative value on error, is returned. Conversion specifications consist of:
Alternate form: for conversion character o, first digit will be zero, for [xX], prefix 0x or 0X to non-zero value, for [eEfgG], always decimal point, for [gG] trailing zeros not removed.
<li>(optional) minimum width: if specified as *, value taken from next argument (which must be int).</li>
<li>(optional) . (separating width from precision):</li>
<li>(optional) precision: for conversion character s, maximum characters to be printed from the string, for [eEf], digits after decimal point, for [gG], significant digits, for an integer, minimum number of digits to be printed. If specified as *, value taken from next argument (which must be int).</li>
<li>(optional) length modifier:
<li>conversion character:
int argument, printed in signed decimal notation
int argument, printed in unsigned octal notation
int argument, printed in unsigned hexadecimal notation
int argument, printed in unsigned decimal notation
int argument, printed as single character
double argument, printed with format [-]mmm.ddd
double argument, printed with format [-]m.<a href="dddddd">dddddd</a>(e|E)(+|-)xx
void* argument, printed as pointer
int* argument : the number of characters written to this point is written into argument
int|The character written, or <a href="EOF">EOF</a> on error.
int c|The character to be written.
FILE* stream|Pointer to a file structure.
Writes a character to a stream.
int|Non-negative on success or <a href="EOF">EOF</a> on error.
const char* s|The string to write.
FILE* stream|A pointer to the file to write to.
Writes s to an output stream. Returns non-negative on success or <a href="EOF">EOF</a> on error.
size_t|The number of items actually read. Use <a href="feof">feof</a> or <a href="ferror">ferror</a> to distinguish a read error from an end-of-file condition.
void* ptr|Storage location for data.
size_t size|Item size in bytes.
size_t nobj|Maximum number of items to read.
FILE* stream|Pointer to a file structure.
Reads (at most) nobj objects of size size from stream <em>stream</em> into ptr.
FILE*|A pointer to the newly opened file, or <a href="NULL">NULL</a> if an error occurs.
const char* filename|The new file to open.
const char* mode|The type of access permitted.
FILE* stream|Pointer to a file structure.
Closes file associated with stream, then opens file filename with specified mode and associates it with stream.
int|The number of items converted and assigned, or <a href="EOF">EOF</a> if end-of-file or error occurs before any conversion.
FILE* stream|Pointer to a file structure.
const char* format|Format control string.
Performs formatted input conversion, reading from stream <em>stream</em> according to format format. The function returns when format is fully processed. Each of the arguments following format must be a pointer. Format string may contain:
* blanks and tabs, which are ignored
* ordinary characters, which are expected to match next non-white-space of input
* conversion specifications, consisting of:
o (optional) assignment suppression character "*"
o (optional) maximum field width
o (optional) target width indicator:
argument is pointer to short rather than int
argument is pointer to long rather than int, or double rather than float
argument is pointer to long double rather than float
decimal integer; int* parameter required
integer; int* parameter required; decimal, octal or hex
octal integer; int* parameter required
unsigned decimal integer; unsigned int* parameter required
hexadecimal integer; int* parameter required
characters; char* parameter required; white-space is not skipped, and NUL-termination is not performed
string of non-white-space; char* parameter required; string is NUL-terminated
floating-point number; float* parameter required
pointer value; void* parameter required
chars read so far; int* parameter required
longest non-empty string from specified set; char* parameter required; string is NUL-terminated
longest non-empty string not from specified set; char* parameter required; string is NUL-terminated
int|Zero on success, non-zero on error.
FILE* stream|Pointer to a file structure.
long offset|Number of bytes from <em>origin</em>.
int origin|Initial position.
Sets file position for stream <em>stream</em> and clears end-of-file indicator. For a binary stream, file position is set to offset bytes from the position indicated by origin: beginning of file for SEEK_SET, current position for SEEK_CUR, or end of file for SEEK_END. Behaviour is similar for a text stream, but offset must be zero or, for SEEK_SET only, a value returned by ftell.
int|Zero on success, non-zero on error.
FILE* stream|Pointer to a file structure.
const fpos_t* ptr|Position indicator storage.
Sets current position of stream <em>stream</em> to *ptr.
long|The current file position for stream <em>stream</em>, or -1 on error.
FILE* stream|Pointer to a file structure.
Gets the current position of a file pointer.
size_t|The number of objects written, which may be less than <em>nobj</em> if an error occurs.
const void* ptr|Pointer to data to be written.
size_t size|Item size in bytes.
size_t nobj|Maximum number of items to be written.
FILE* stream|Pointer to a file structure.
int|The character read, or <a href="EOF">EOF</a> for a read error or end-of-file. Use <a href="ferror">ferror</a> or <a href="feof">feof</a> to check for an error or end-of-file.
FILE* stream|Pointer to a file structure.
Returns a character from a stream. This is equivalent to <a href="fgetc">fgetc</a> except that it may be a macro.
Returns a character from <a href="stdin">stdin</a>. This is equivalent to <a href="getc">getc</a>(<a href="stdin">stdin</a>).
char*|<em>s</em>, or <a href="NULL">NULL</a> on end-of-file or error. Use <a href="ferror">ferror</a> or <a href="feof">feof</a> to determine which one has occurred.
char* s|Storage location for the input string.
Copies characters from <a href="stdin">stdin</a> into s until newline encountered, end-of-file reached, or error occurs. Does not copy newline. NUL-terminates s. <em>This function should not be used because of the potential for buffer overflow.</em>
Number of characters required for temporary filename generated by tmpnam.
Prints s (if non-null) and <a href="strerror">strerror</a>(errno) to standard error as would:
<tt><a href="fprintf">fprintf</a>(<a href="stderr">stderr</a>, "%s: %s\n", (s != <a href="NULL">NULL</a> ? s : ""), <a href="strerror">strerror</a>(errno))</tt>
int|The number of characters printed, or a negative value if an error occurs.
const char* format|Format control
<a href="printf">printf</a>(f, ...) is equivalent to <a href="fprintf">fprintf</a>(<a href="stdout">stdout</a>, f, ...)
int|The character written, or <a href="EOF">EOF</a> on end-of-file or error. Use <a href="ferror">ferror</a> or <a href="feof">feof</a> to determine which one has occurred.
int c|The character to be written.
FILE* stream|Pointer to a file structure.
Writes a character to a stream. This is equivalent to fputc except that it may be a macro.
int|The character written, or <a href="EOF">EOF</a> on end-of-file or error. Use <a href="ferror">ferror</a> or <a href="feof">feof</a> to determine which one has occurred.
int c|The character to be written.
Writes a character to <a href="stdout">stdout</a>. This is equivalent to <a href="putc">putc</a>(c, <a href="stdout">stdout</a>).
int|Non-negative on success or <a href="EOF">EOF</a> on error.
const char* s|The string to write.
Writes s (excluding terminating NUL) and a newline to <a href="stdout">stdout</a>.
Removes specified file. Returns non-zero on failure.
Changes name of file oldname to newname. Returns non-zero on failure.
FILE* stream|Pointer to a file structure.
Equivalent to <a href="fseek">fseek</a>(stream, 0L, SEEK_SET); <a href="clearerr">clearerr</a>(stream).
<a href="scanf">scanf</a>(f, ...) is equivalent to <a href="fscanf">fscanf</a>(<a href="stdin">stdin</a>, f, ...)
Value for origin argument to fseek specifying current file position.
Value for origin argument to fseek specifying end of file.
Value for origin argument to fseek specifying beginning of file.
FILE* stream|Pointer to a file structure.
Controls buffering for stream <em>stream</em>. For null buf, turns off buffering, otherwise equivalent to (void)<a href="setvbuf">setvbuf</a>(stream, buf, _IOFBF, BUFSIZ).
FILE* stream|Pointer to a file structure.
Controls buffering for stream <em>stream</em>. mode is _IOFBF for full buffering, _IOLBF for line buffering, _IONBF for no buffering. Non-null buf specifies buffer of size size to be used; otherwise, a buffer is allocated. Returns non-zero on error. Call must be before any other operation on stream.
Type for objects declared to store result of sizeof operator.
Like fprintf, but output written into string s, which must be large enough to hold the output, rather than to a stream. Output is NUL-terminated. Returns length (excluding the terminating NUL).
Like fscanf, but input read from string s.
File pointer for standard error stream. Automatically opened when program execution begins.
File pointer for standard input stream. Automatically opened when program execution begins.
File pointer for standard output stream. Automatically opened when program execution begins.
Minimum number of unique filenames generated by calls to tmpnam.
Creates temporary file (mode "wb+") which will be removed when closed or on normal program termination. Returns stream or <a href="NULL">NULL</a> on failure.
Assigns to s (if s non-null) and returns unique name for a temporary file. Unique name is returned for each of the first TMP_MAX invocations.
FILE* stream|Pointer to a file structure.
Pushes c (which must not be EOF), onto (input) stream <em>stream</em> such that it will be returned by the next read. Only one character of pushback is guaranteed (for each stream). Returns c, or <a href="EOF">EOF</a> on error.
FILE* stream|Pointer to a file structure.
Equivalent to fprintf with variable argument list replaced by arg, which must have been initialised by the va_start macro (and may have been used in calls to va_arg).
Equivalent to printf with variable argument list replaced by arg, which must have been initialised by the va_start macro (and may have been used in calls to va_arg).
Equivalent to sprintf with variable argument list replaced by arg, which must have been initialised by the va_start macro (and may have been used in calls to va_arg).
Terminates program abnormally, by calling <a href="raise">raise</a>(<a href="SIGABRT">SIGABRT</a>).
int|The absolute value of <em>n</em>.
int n|The number to get the absolute value of.
Calculates the absolute value of an int.
Registers fcn to be called when program terminates normally (or when main returns). Returns non-zero on failure.
const char* s|The float, as a string.
Equivalent to <a href="strtod">strtod</a>(s, (char**)<a href="NULL">NULL</a>) except that errno is not necessarily set on conversion error.
const char* s|The int, as a string.
Equivalent to (int)<a href="strtol">strtol</a>(s, (char**)<a href="NULL">NULL</a>, 10) except that errno is not necessarily set on conversion error.
const char* s|The long, as a string.
Equivalent to <a href="strtol">strtol</a>(s, (char**)<a href="NULL">NULL</a>, 10) except that errno is not necessarily set on conversion error.
int (*cmp)(const void* keyval, const void* datum)|
Searches ordered array base (of n objects each of size size) for item matching key according to comparison function cmp. cmp must return negative value if first argument is less than second, zero if equal and positive if greater. Items of base are assumed to be in ascending order (according to cmp). Returns a pointer to an item matching key, or <a href="NULL">NULL</a> if none found.
Returns pointer to zero-initialised newly-allocated space for an array of nobj objects each of size size, or <a href="NULL">NULL</a> on error.
Returns quotient and remainder of num/denom.
Return type of <a href="div">div</a>(). Structure having members:
int status|The return code to exit with.
Terminates program normally. Functions installed using atexit are called (in reverse order to that in which installed), open files are flushed, open streams are closed and control is returned to environment. status is returned to environment in implementation-dependent manner. Zero or EXIT_SUCCESS indicates successful termination and EXIT_FAILURE indicates unsuccessful termination. Implementations may define other values.
Value for status argument to <a href="exit"exit</a> indicating failure.
Value for status argument to <a href="exit">exit</a> indicating success.
void* p|Pointer to the memory to free.
If p non-null, deallocates space to which it points.
const char* name|The name of the environment variable.
Returns string associated with name name from implementation's environment, or <a href="NULL">NULL</a> if no such string exists.
long n|The long to get the absolute value of.
Returns absolute value of <em>n</em>.
Returns quotient and remainder of num/denom.
Return type of <a href="ldiv">ldiv</a>(). Structure having members:
Returns pointer to uninitialised newly-allocated space for an object of size size, or <a href="NULL">NULL</a> on error.
Arranges into ascending order array base (of n objects each of size size) according to comparison function cmp. cmp must return negative value if first argument is less than second, zero if equal and positive if greater.
Returns pseudo-random number in range 0 to RAND_MAX.
Maximum value returned by <a href="rand">rand</a>().
Returns pointer to newly-allocated space for an object of size size, initialised, to minimum of old and new sizes, to existing contents of p (if non-null), or <a href="NULL">NULL</a> on error. On success, old object deallocated, otherwise unchanged.
Type for objects declared to store result of sizeof operator.
Uses seed as seed for new sequence of pseudo-random numbers. Initial seed is 1.
Converts initial characters (ignoring leading white space) of s to type double. If endp non-null, stores pointer to unconverted suffix in *endp. On overflow, sets errno to ERANGE and returns HUGE_VAL with the appropriate sign; on underflow, sets errno to ERANGE and returns zero; otherwise returns converted value.
Converts initial characters (ignoring leading white space) of s to type long. If endp non-nu ll, stores pointer to unconverted suffix in *endp. If base between 2 and 36, that base used for conversion; if zero, leading (after any sign) 0X or 0x implies hexadecimal, leading 0 (after any sign) implies octal, otherwise decimal assumed. Leading 0X or 0x permitted for base hexadecimal. On overflow, sets errno to ERANGE and returns LONG_MAX or LONG_MIN (as appropriate for sign); otherwise returns converted value.
As for strtol except result is unsigned long and value on overflow is ULONG_MAX.
If s is not <a href="NULL">NULL</a>, passes s to environment for execution, and returns status reported by command processor; if s is <a href="NULL">NULL</a>, non-zero returned if environment has a command processor.
Returns pointer to first occurrence of c in first n characters of cs, or <a href="NULL">NULL</a> if not found.
Compares at most (the first) n characters of cs and ct, returning negative value if cs<ct, zero if cs==ct, positive value if cs>ct.
Copies n characters from ct to s and returns s. s may be corrupted if objects overlap.
Copies n characters from ct to s and returns s. s will not be corrupted if objects overlap.
Replaces each of the first n characters of s by c and returns s.
Type for objects declared to store result of sizeof operator.
Concatenate ct to s and return s.
Returns pointer to first occurrence of c in cs, or <a href="NULL">NULL</a> if not found.
Compares cs with ct, returning negative value if cs<ct, zero if cs==ct, positive value if cs>ct.
Compares cs with ct according to locale, returning negative value if cs<ct, zero if cs==ct, positive value if cs>ct.
Copies ct to s including terminating NUL and returns s.
Returns length of prefix of cs which consists of characters which are not in ct.
Returns pointer to implementation-defined message string corresponding with error n.
Concatenate at most n characters of ct to s. NUL-terminates s and return it.
Compares at most (the first) n characters of cs and ct, returning negative value if cs<ct, zero if cs==ct, positive value if cs>ct.
Copies at most n characters of ct to s. Pads with NUL characters if ct is of length less than n. Note that this may leave s without NUL-termination. Return s.
Returns pointer to first occurrence in cs of any character of ct, or <a href="NULL">NULL</a> if none is found.
Returns pointer to last occurrence of c in cs, or <a href="NULL">NULL</a> if not found.
Returns length of prefix of cs which consists of characters which are in ct.
Returns pointer to first occurrence of ct within cs, or <a href="NULL">NULL</a> if none is found.
Searches s for next token delimited by any character from ct. Non-<a href="NULL">NULL</a> s indicates the first call of a sequence. If a token is found, it is NUL-terminated and returned, otherwise <a href="NULL">NULL</a> is returned. ct need not be identical for each call in a sequence.
Stores in s no more than n characters (including terminating NUL) of a string produced from ct according to a locale-specific transformation. Returns length of entire transformed string.
Returns the given time as a string of the form:
Sun Jan 3 13:08:42 1988\n\0
Returns elapsed processor time used by program or -1 if not available.
An arithmetic type elapsed processor representing time.
The number of clock_t units per second.
Returns string equivalent to calendar time tp converted to local time. Equivalent to:
<a href="asctime">asctime</a>(<a href="localtime">localtime</a>(tp))
Returns the difference in seconds between time2 and time1.
Returns calendar time *tp converted to Coordinated Universal Time, or <a href="NULL">NULL</a> if not available.
Returns calendar time *tp converted into local time.
If necessary, adjusts fields of *tp to fall withing normal ranges. Returns the corresponding calendar time, or -1 if it cannot be represented.
Formats *tp into s according to fmt. Places no more than smax characters into s, and returns number of characters produced (excluding terminating NUL), or 0 if greater than smax. Formatting conversions (%c) are:
abbreviated name of weekday
abbreviated name of month
local date and time representation
hour (24-hour clock) [00-23]
hour (12-hour clock) [01-12]
local equivalent of "AM" or "PM"
week number of year (Sunday as 1st day of week) [00-53]
week number of year (Monday as 1st day of week) [00-53]
weekday (Sunday as 0) [0-6]
local time representation
local date representation
year without century [00-99]
name (if any) of time zone
Represents the components of calendar time:
Daylight Saving Time flag : is positive if DST is in effect, zero if not in effect, negative if information not known.
Implementations may change field order and include additional fields.
Returns current calendar time or -1 if not available. If tp is non-<a href="NULL">NULL</a>, return value is also assigned to *tp.
An arithmetic type representing calendar time.