独立式程序可用的任何库工具,子句 4 要求的最低设置除外 (5.1.2.1)。
该实现处于主机环境中。
断言宏输出的诊断格式 (7.2.1.1)。
诊断的结构如下:
Assertion failed: statement. 文件 filename、line number、function name
statement 是使断言失败的语句。filename 是 __FILE__ 的值。line number 是 __LINE__ 的值。function name 是 __func__ 的值。
由 fegetexceptflag 函数存储的浮点状态标志的表示 (7.6.2.2)。
fegetexceptflag 存储在状态标志中的每个异常均可扩展至具有值的整数常量表达式,这样,所有常量组合的按位包括 OR 会得到不同的值。
除了“上溢”或“下溢”浮点异常之外,feraiseexcept 函数是否会产生“不精确”浮点异常 (7.6.2.3)。
不,不会产生“不精确”异常。
除 "C" 和 "" 之外可以作为第二个参数传递给 setlocale 函数的其他字符串 (7.11.1.1)。
故意留空。
当 FLT_EVAL_METHOD 宏的值小于零或大于二时针对 float_t 和 double_t 定义的类型 (7.12)。
对于 SPARC,类型如下:
typedef float float_t;
typedef double double_t;
对于 x86,类型如下:
typedef long double float_t;
typedef long double double_t;
数学函数的域错误,与此国际标准的要求不同 (7.12.1)。
如果输入参数为 0、+/-Inf 或 NaN,ilogb()、ilogbf() 和 ilogbl() 会生成无效的异常。
发生域错误时数学函数返回的值 (7.12.1)。
在完整的 C99 模式 (-xc99=%all,lib) 下发生域错误时返回的值,将遵循 ISO/IEC 9899:1999 编程语言 C 附录 F 中的规定。
发生下溢范围错误时数学函数返回的值,当整型表达式 math_errhandling & MATH_ERRNO 为非零时, 为非零时,是否产生“下溢”浮点异常。是否将 errno 设置为宏 ERANGE 的值,以及当整形表达式 math_errhandling & MATH_ERREXCEPT 为非零时是否产生“下溢”浮点异常。(7.12.1)。
对于下溢范围错误: 如果该值可表示为非正规数,则返回非正规数;否则根据情况返回 +-0。
至于当整型表达式 math_errhandling & MATH_ERRNO 为非零时是否将 errno 设置为宏 ERANGE 的值,由于在我们的实现中 (math_errhandling & MATH_ERRNO) == 0,因此不会应用这一部分。
当整型表达式 math_errhandling & MATH_ERREXCEPT 为非零时是否会产生“下溢”浮点异常 (7.12.1),如果在发生浮点下溢的同时伴随着准确度的降低,则会产生异常。
当 fmod 函数还有一个参数为零时,发生域错误还是返回零 (7.12.10.1)。
发生域错误。
在减小商时 remquo 函数使用的以 2 为基数的模数对数 (7.12.10.3)。
31。
在调用信号处理程序之前是否执行 signal(sig, SIG_DFL); 的等效函数,如果不执行,则阻塞执行的信号 (7.14.1.1)。
在调用信号处理程序之前执行 signal(sig, SIG_DFL); 的等效函数。
NULL 扩展到 0。
文本流的最后一行是否需要一个终止换行符 (7.19.2)。
最后一行不需要以换行符结束。
写出到换行符前面的文本流中的空格字符在读入时是否出现 (7.19.2)。
读该流时,所有字符均出现。
可附加至写入二进制流的数据的空字符数 (7.19.2)。
空字符不附加至二进制流。
附加模式流的文件位置指示符最初位于文件开头还是结尾 (7.19.3)。
文件位置指示符最初位于文件结尾。
对文本流的写操作是否导致关联的文件在该点之后被截断 (7.19.3)。
对文本流的写操作不会导致文件在该点之后被截断,除非硬件设备强制这种情况发生。
文件缓冲的特征 (7.19.3)。
除标准错误流 (stderr) 之外,输出流在输出至文件时缺省情况下缓冲,在输出至终端时采用行缓冲。标准错误输出流 (stderr) 在缺省情况下不缓冲。
缓冲的输出流保存多个字符,然后将这些字符作为块进行写入。未缓冲的输出流将信息排队,以便立即在目标文件或终端上写入。行缓冲的输出将输出的每行排队,直至行完成(请求换行符)时为止。
零长度文件是否确实存在 (7.19.3)。
由于零长度文件有目录项,因此它确实存在。
书写有效文件名的规则 (7.19.3)。
有效文件名的长度可以为 1 到 1,023 个字符,并且可以使用除字符 null 和 /(斜杠)之外的所有字符。
同一文件是否可以同时打开多次 (7.19.3)。
同一文件可以多次打开。
文件中多字节字符所用编码的性质和选项 (7.19.3)。
对于每个文件来说,多字节字符所用的编码均相同。
remove 函数对打开的文件的作用 (7.19.4.1)。
在执行关闭文件的最后一个调用时删除文件。程序不能打开已删除的文件。
在调用 rename 函数之前存在一个具有新名称的文件时的作用 (7.19.4.2)。
如果该文件存在,则将其删除,并且新文件改写先前存在的文件。
程序异常终止后是否删除打开的临时文件 (7.19.4.3)。
如果在文件创建与解除链接这段时期内终止进程,则可能会留下永久文件。请参见 freopen(3C) 手册页。
允许模式进行哪些更改(如果有),并且在什么情况下允许更改 (7.19.5.4)。
允许模式进行以下更改,具体取决于流下面的文件描述符的访问模式:
指定 + 后,文件描述符模式必须为 O_RDWR。
指定 r 后,文件描述符模式必须为 O_RDONLY 或 O_RDWR。
指定 a 或 w 后,文件描述符模式必须为 O_WRONLY 或 O_RDWR。
请参见 freopen (3C) 手册页。
用于输出无穷大或 NaN 的样式,以及为 NaN 输出的任何 n-char 或 n-wchar 序列的含义 (7.19.6.1, 7.24.2.1)。
[-]Inf, [-]NaN。具有 F 转换说明符时,则为 [-]INF, [-]NAN。
在 fprintf 或 fwprintf 函数中 %p 转换的输出 (7.19.6.1, 7.24.2.1)。
%p 的输出与 %x 的相同。
在 fscanf() 或 fwscanf() 函数中 %[ 转换的扫描列表中,当 - 字符既不是第一个字符也不是最后一个字符,又不是 ^ 字符为第一个字符时的第二个字符,此时对 - 字符的解释 (7.19.6.2, 7.24.2.1)。
如果 - 存在于扫描列表中,并且既不是第一个字符,也不是第二个字符(当第一个字符为 ^ 时),又不是最后一个字符,则表示符合字符的范围。
请参见 fscanf(3C) 手册页。
fscanf() 或 fwscanf() 函数中 %p 转换匹配的序列集合以及相应输入项的解释 (7.19.6.2, 7.24.2.2)。
匹配与相应 printf(3C) 函数的 %p 转换所生成的序列集合相同的序列集合。相应的参数必须是 void 指针的指针。如果输入项是在执行同一个程序时较早转换的值,则得到的指针将等于该值;否则 %p 转换的行为不确定。
请参见 fscanf(3C) 手册页。
发生故障时 fgetpos、fsetpos 或 ftell 函数将宏 errno 设置为的值 (7.19.9.1, 7.19.9.3, 7.19.9.4)。
EBADF 流下面的文件描述符无效。请参见 fgetpos(3C) 手册页。
ESPIPE 流下面的文件描述符与管道、FIFO 或套接字相关联。请参见 fgetpos(3C) 手册页。
EOVERFLOW 在类型为 fpos_t 的对象中无法正确地表示文件位置的当前值。请参见 fgetpos(3C) 手册页。
EBADF 流下面的文件描述符无效。请参见 fsetpos(3C) 手册页。
ESPIPE 流下面的文件描述符与管道、FIFO 或套接字相关联。请参见 fsetpos(3C) 手册页。
EBADF 流下面的文件描述符不是打开的文件描述符。请参见 ftell(3C) 手册页。
ESPIPE 流下面的文件描述符与管道、FIFO 或套接字相关联。请参见 ftell(3C) 手册页。
EOVERFLOW 在类型为 long 的对象中无法正确地表示当前文件偏移。请参见 ftell(3C) 手册页。
在表示由 strtod()、strtof()、strtold()、wcstod()、wcstof() 或 wcstold() 函数转换的 NaN 的字符串中,任何 n-char 或 n-wchar 序列的含义 (7.20.1.3, 7.24.4.1.1)。
未给 n-char 序列赋予特殊意义。
发生下溢时,strtod、strtof、strtold、wcstod、wcstof 或 wcstold 函数是否将 errno 设置为 ERANGE (7.20.1.3, 7.24.4.1.1)。
是,发生下溢时将 errno 设置为 ERANGE。
当请求的大小为零时,calloc、malloc 和 realloc 函数返回空指针还是返回指向已分配对象的指针 (7.20.3)。
请参见 malloc(3C) 手册页。
调用 abort 或 _Exit 函数时,是刷新具有未写入缓冲数据的开放流、关闭开放流还是删除临时文件 (7.20.4.1, 7.20.4.4)。
异常终止处理至少包括 fclose(3C) 对所有开放流的影响。请参见 abort(3C) 手册页。
关闭开放流,并且不刷新开放流。请参见 _Exit(2) 手册页。
abort、exit 或 _Exit 函数返回给主机环境的终止状态 (7.20.4.1, 7.20.4.3, 7.20.4.4)。
终止操作可用于 wait(3C) 或 waitpid(3C) 的状态是由 SIGABRT 信号终止的进程状态。请参见 abort(3C)、exit(1) 和 _Exit(2) 手册页。
由 exit 或 _Exit 返回的终止状态,具体取决于正在进行的调用进程的父进程。
如果调用进程的父进程正在执行 wait(3C)、wait3(3C)、waitid(2) 或 waitpid(3C),并且既未设置 SA_NOCLDWAIT 标志,也未将 SIGCHLD 设置为 SIG_IGN,则它会被告知调用进程的终止,并且它可使用状态的低阶八位(即,位 0377)。如果父进程未处于等待状态,则当父进程随后执行 wait()、wait3()、waitid() 或 waitpid() 时可以使用子进程的状态。
system 函数在其参数不是空指针时返回的值 (7.20.4.6)。
采用 waitpid(3C) 指定格式的 shell 的退出状态。
本地时区和夏令时 (7.23.1)。
本地时区由环境变量 TZ 设置。
可以用 clock_t 和 time_t 表示的时间的范围和精度 (7.23)。
clock_t 和 time_t 的精度是一百万分之一秒。x86 和 sparc v8 上的范围为 -2147483647-1 到 4294967295 百万分之一秒。而 SPARC v9 上的范围为 -9223372036854775807LL-1 到 18446744073709551615。
时钟的年代以时钟周期(以程序的起始执行时间为起点)表示。
"C" 语言环境中 strftime 和 wcsftime 函数的 %Z 说明符的替换字符串 (7.23.3.5, 7.24.5.1)。
时区名称或缩写,如果未确定任何时区,则不使用任何字符。
trigonometric、hyperbolic、以 e 为基数的指数、以 e 为基数的对数、错误和对数伽玛函数是否或何时在符合 IEC 60559 要求的实现中产生“不精确”的浮点异常 (F.9)。
当不能准确地表示结果时,通常会产生不精确的异常。即使能准确地表示结果,也可能产生不精确的异常。
<math.h> 中的函数是否在符合 IEC 60559 要求的实现中接受舍入方向模式 (F.9)。
不尝试对 <math.h> 中的所有函数强制使用缺省舍入方向模式。