标准库函数 本附录描述了标准C支持的库函数①
使用此附录时,请记住下列要点
为了简洁清楚,这里删除了一些细节
如果想看全部内容,请参考标准
本书的其他地方已经对一些函数(特别是printf函数、scanf函数以及它们的变异函数)进行了详细介绍,所以这里只对这类函数做简短的描述
为了获得关于某个函数更详细的信息(包括如何使用这个函数的示例),请见函数描述右下角用楷体列出的节号
每个函数描述结尾都有其他与之相关函数的列表
相似函数非常接近于正在描述的函数
相关函数经常会和在描述的函数联合使用
(例如,calloc函数和realloc函数与malloc函数“类似”,而free函数则与malloc函数“相关”
)也可参见的函数和在描述的函数没有紧密联系,但是却可能有影响
如果把函数行为的某些方面描述为由实现定义的,那么这就意味着此函数依赖于C库的实现方式
函数将始终行为一致,但是结果却可能会由于系统的不同而千差万别
(换句话说,请参考手册了解可能发生的问题
)另一方面,未定义的行为是一个不好的消息:不但函数的行为可能会因系统不同而不同,而且程序也可能会行为异常甚至崩溃
中许多函数的描述提到了定义域错误和取值范围错误
在本附录的末尾对这两种错误进行了定义
下列库函数的行为是会受到当前地区影响的: 字符处理函数(除了isdigit函数和isxdigit函数)
格式化输入/输出函数
多字节字符和字符串函数
字符串转换函数
Strcoll函数、strftime函数和strxfrm函数
例如,isalpha函数实际上检测字符是否在a到z之间或者在A到Z之间
在某些区域内也把其他字符看成是字母次序的
本附录描述了在"C"(默认的)地区内库函数的行为
一些函数实际上是宏
然而,这些宏的用法和函数完全一样,所以这里不对它们区别对待