Any library facilities available to a freestanding program, other than the minimal set required by clause 4 (5.1.2.1).
The implementation is on a hosted environment.
The format of the diagnostic printed by the assert macro (7.2.1.1).
The diagnostic is structured as follows:
Assertion failed: statement. file filename, line number, function name
statement is the statement which failed the assertion. filename is the value of __FILE__. line number is the value of __LINE__. function name is the value of __func__.
The representation of the floating-point status flags stored by the fegetexceptflag function (7.6.2.2).
Each exception stored in the status flag by fegetexceptflag expands to an integer constant expression with values such that bitwise-inclusive ORs of all combinations of the constants result in distinct values.
Whether the feraiseexcept function raises the “inexact” floating-point exception in addition to the “overflow” or “underflow” floating-point exception (7.6.2.3).
No, “inexact” is not raised.
Strings other than “C” and “” that may be passed as the second argument to the setlocale function (7.11.1.1).
Intentionally left blank.
The types defined for float_t and double_t when the value of the FLT_EVAL_METHOD macro is less than zero or greater than two (7.12).
For SPARC, the types are as follows:
typedef float float_t;
typedef double double_t;
For x86 the types are as follows:
typedef long double float_t;
typedef long double double_t;
Domain errors for the mathematics functions, other that those required by this International Standard (7.12.1).
ilogb(), ilogbf() and ilogbl() raise the invalid exception if the input argument is 0, +/-Inf or NaN.
The values returned by the mathematics functions on domain errors (7.12.1).
The values returned on domain errors in full C99 mode (-xc99=%all,lib), are as specified in Annex F of ISO/IEC 9899:1999, Programming Languages - C.
The values returned by the mathematics functions on underflow range errors, whether errno is set to the value of the macro ERANGE when the integer expression math_errhandling & MATH_ERRNO is nonzero, and whether the “underflow” floating-point exception is raised when the integer expression math_errhandling & MATH_ERREXCEPT is nonzero. (7.12.1).
For underflow range errors: if the value can be represented as a subnormal number, the subnormal number is returned; otherwise +-0 is returned as appropriate.
As for whether errno is set to the value of the macro ERANGE when the integer expression math_errhandling & MATH_ERRNO is nonzero, since (math_errhandling & MATH_ERRNO) == 0 in our implementation, this part does not apply.
Whether the “underflow” floating-point exception is raised when the integer expression math_errhandling & MATH_ERREXCEPT is nonzero (7.12.1), the exception is raised when a floating-point underflow is coupled with loss of accuracy.
Whether a domain error occurs or zero is returned when an fmod function has a second argument of zero(7.12.10.1).
A domain error occurs.
The base-2 logarithm of the modulus used by the remquo functions in reducing the quotient (7.12.10.3).
31.
Whether the equivalent of signal(sig, SIG_DFL); is executed prior to the call of a signal handler, and, if not, the blocking of signals that is performed (7.14.1.1).
The equivalent of signal(sig, SIG_DFL); is executed prior to the call of a signal handler.
The null pointer constant to which the macro NULL expands (7.17).
NULL expands to 0.
Whether the last line of a text stream requires a terminating new-line character (7.19.2).
The last line does not need to end in a newline.
Whether space characters that are written out to a text stream immediately before a new-line character appear when read in (7.19.2).
All characters appear when the stream is read.
The number of null characters that may be appended to data written to a binary stream (7.19.2).
No null characters are appended to a binary stream.
Whether the file position indicator of an append-mode stream is initially positioned at the beginning or end of the file (7.19.3).
The file position indicator is initially positioned at the end of the file.
Whether a write on a text stream causes the associated file to be truncated beyond that point (7.19.3).
A write on a text stream does not cause a file to be truncated beyond that point unless a hardware device forces it to happen.
The characteristics of file buffering (7.19.3).
Output streams, with the exception of the standard error stream (stderr), are by default-buffered if the output refers to a file, and line-buffered if the output refers to a terminal. The standard error output stream (stderr) is by default unbuffered.
A buffered output stream saves many characters, and then writes the characters as a block. An unbuffered output stream queues information for immediate writing on the destination file or terminal immediately. Line-buffered output queues each line of output until the line is complete (a newline character is requested).
Whether a zero-length file actually exists (7.19.3).
A zero-length file does exist since it has a directory entry.
The rules for composing valid file names (7.19.3).
A valid file name can be from 1 to 1,023 characters in length and can use all character except the characters null and / (slash).
Whether the same file can be simultaneously open multiple times (7.19.3).
The same file can be opened multiple times.
The nature and choice of encodings used for multibyte characters in files (7.19.3).
The encodings used for multibyte characters are the same for each file.
The effect of the remove function on an open file (7.19.4.1).
The file is deleted on the last call which closes the file. A program cannot open a file which has already been removed.
The effect if a file with the new name exists prior to a call to the rename function (7.19.4.2).
If the file exists, it is removed and the new file is written over the previously existing file.
Whether an open temporary file is removed upon abnormal program termination (7.19.4.3).
If the process is killed in the period between file creation and unlinking, a permanent file may be left behind. See the freopen(3C) man page.
Which changes of mode are permitted (if any), and under what circumstances (7.19.5.4).
The following changes of mode are permitted, depending upon the access mode of the file descriptor underlying the stream:
When + is specified, the file descriptor mode must be O_RDWR.
When r is specified, the file descriptor mode must be O_RDONLY or O_RDWR.
When a or w is specified, the file descriptor mode must be O_WRONLY or O_RDWR.
See the freopen(3C) man page.
The style used to print an infinity or NaN, and the meaning of any n-char or n-wchar sequence printed for a NaN (7.19.6.1, 7.24.2.1).
[-]Inf, [-]NaN. With F conversion specifier, [-]INF, [-]NAN.
The output for %p conversion in the fprintf or fwprintf function (7.19.6.1, 7.24.2.1).
The output for %p is equivalent to %x.
The interpretation of a - character that is neither the first nor the last character, nor the second where a ^ character is the first, in the scanlist for %[ conversion in the fscanf() or fwscanf() function (7.19.6.2, 7.24.2.1).
If a - is in the scanlist and is not the first character, nor the second where the first character is a ^, nor the last character, it indicates a range of characters to be matched.
See the fscanf(3C) man page.
The set of sequences matched by a %p conversion and the interpretation of the corresponding input item in the fscanf() or fwscanf() function (7.19.6.2, 7.24.2.2).
Matches the set of sequences that is the same as the set of sequences that is produced by the %p conversion of the corresponding printf(3C) functions. The corresponding argument must be a pointer to a pointer to void. If the input item is a value converted earlier during the same program execution, the pointer that results will compare equal to that value; otherwise the behavior of the %p conversion is undefined.
See the fscanf(3C) man page.
The value to which the macro errno is set by the fgetpos, fsetpos, or ftell functions on failure (7.19.9.1, 7.19.9.3, 7.19.9.4).
EBADF The file descriptor underlying stream is not valid. See the fgetpos(3C) man page.
ESPIPE The file descriptor underlying stream is associated with a pipe, a FIFO, or a socket. See the fgetpos(3C) man page.
EOVERFLOW The current value of the file position cannot be represented correctly in an object of type fpos_t. See the fgetpos(3C) man page.
EBADF The file descriptor underlying stream is not valid. See the fsetpos(3C) man page.
ESPIPE The file descriptor underlying stream is associated with a pipe, a FIFO, or a socket. See the fsetpos(3C) man page.
EBADF The file descriptor underlying stream is not an open file descriptor. See the ftell(3C) man page.
ESPIPE The file descriptor underlying stream is associated with a pipe, a FIFO, or a socket. See the ftell(3C) man page.
EOVERFLOW The current file offset cannot be represented correctly in an object of type long. See the ftell(3C) man page.
The meaning of any n-char or n-wchar sequence in a string representing a NaN that is converted by the strtod(), strtof(), strtold(), wcstod(), wcstof(), or wcstold() function (7.20.1.3, 7.24.4.1.1).
No special meaning is given to the n-char sequence.
Whether or not the strtod, strtof, strtold, wcstod, wcstof, or wcstold function sets errno to ERANGE when underflow occurs (7.20.1.3, 7.24.4.1.1).
Yes, errno is set to ERANGE on underflow.
Whether the calloc, malloc, and realloc functions return a null pointer or a pointer to an allocated object when the size requested is zero (7.20.3).
Either a null pointer or a unique pointer that can be passed to free() is returned.
See the malloc(3C) man page.
Whether open streams with unwritten buffered data are flushed, open streams are closed, or temporary files are removed when the abort or _Exit function is called (7.20.4.1, 7.20.4.4).
The abnormal termination processing includes at least the effect of fclose(3C) on all open streams. See the abort(3C) man page.
Open streams are closed and do not flush open streams. See the _Exit(2) man page.
The termination status returned to the host environment by the abort, exit, or _Exit function (7.20.4.1, 7.20.4.3, 7.20.4.4).
The status made available to wait(3C) or waitpid(3C) by abort will be that of a process terminated by the SIGABRT signal. See the abort(3C), exit(1), and _Exit(2) man pages.
The termination status returned by exit, or _Exit, depends on the what the parent process of the calling process is doing.
If the parent process of the calling process is executing a wait(3C), wait3(3C), waitid(2), or waitpid(3C), and has neither set its SA_NOCLDWAIT flag nor set SIGCHLD to SIG_IGN, it is notified of the calling process’s termination and the low-order eight bits (that is, bits 0377) of status are made available to it. If the parent is not waiting, the child’s status is made available to it when the parent subsequently executes wait(), wait3(), waitid(), or waitpid().
The value returned by the system function when its argument is not a null pointer (7.20.4.6).
The exit status of the shell in the format specified by waitpid(3C).
The local time zone and Daylight Saving Time (7.23.1).
The local time zone is set by the environment variable TZ.
The range and precision of times representable in clock_t and time_t (7.23).
The precision of clock_t and time_t is one millionth of a second. The range is -2147483647-1 to 4294967295 millionths of a second on x86 and sparc v8. And -9223372036854775807LL-1 to 18446744073709551615 on SPARC v9.
The era for the clock function (7.23.2.1).
The era for the clock is represented as clock ticks with the origin at the beginning of the execution of the program.
The replacement string for the %Z specifier to the strftime, and wcsftime functions in the “C” locale (7.23.3.5, 7.24.5.1).
The time zone name or abbreviation, or by no characters if no time zone is determinable.
Whether or when the trigonometric, hyperbolic, base-e exponential, base-e logarithmic, error, and log gamma functions raise the “inexact” floating-point exception in an IEC 60559 conformant implementation (F.9).
The inexact exception is generally raised when the result is not exactly representable. The inexact exception can be raised even when the result is exactly representable.
Whether the functions in <math.h> honor the rounding direction mode in an IEC 60559 conformant implementation (F.9).
No attempt is made to force the default rounding direction mode for all functions in <math.h>.