您好,欢迎访问三七文档
标准库函数本附录描述了标准C支持的库函数①。使用此附录时,请记住下列要点。为了简洁清楚,这里删除了一些细节。如果想看全部内容,请参考标准。本书的其他地方已经对一些函数(特别是printf函数、scanf函数以及它们的变异函数)进行了详细介绍,所以这里只对这类函数做简短的描述。为了获得关于某个函数更详细的信息(包括如何使用这个函数的示例),请见函数描述右下角用楷体列出的节号。每个函数描述结尾都有其他与之相关函数的列表。相似函数非常接近于正在描述的函数。相关函数经常会和在描述的函数联合使用。(例如,calloc函数和realloc函数与malloc函数“类似”,而free函数则与malloc函数“相关”。)也可参见的函数和在描述的函数没有紧密联系,但是却可能有影响。如果把函数行为的某些方面描述为由实现定义的,那么这就意味着此函数依赖于C库的实现方式。函数将始终行为一致,但是结果却可能会由于系统的不同而千差万别。(换句话说,请参考手册了解可能发生的问题。)另一方面,未定义的行为是一个不好的消息:不但函数的行为可能会因系统不同而不同,而且程序也可能会行为异常甚至崩溃。math.h中许多函数的描述提到了定义域错误和取值范围错误。在本附录的末尾对这两种错误进行了定义。下列库函数的行为是会受到当前地区影响的:字符处理函数(除了isdigit函数和isxdigit函数)。格式化输入/输出函数。多字节字符和字符串函数。字符串转换函数。Strcoll函数、strftime函数和strxfrm函数。例如,isalpha函数实际上检测字符是否在a到z之间或者在A到Z之间。在某些区域内也把其他字符看成是字母次序的。本附录描述了在C(默认的)地区内库函数的行为。一些函数实际上是宏。然而,这些宏的用法和函数完全一样,所以这里不对它们区别对待。abort异常终止程序stdlib.hvoidabort(void);产生SIGABRT信号。如果无法捕获信号(或者如果信号处理函数返回),那么程序会异常终止,并且返回由实现定义的代码来说明不成功的终止。是否清洗输出缓冲区,是否关闭打开的流,以及是否移除临时文件都是由实现定义的。相似函数exit函数、raise函数相关函数assert函数、signal函数也可参见atexit函数26.2节abs整数的绝对值stdlib.hintabs(intj);返回整数j的绝对值。如果不能表示j的绝对值,那么函数的行为是未定义的。①这些材料经ANSI许可改编自AmericanNationalStandardsInstitudeANSI/ISO9899©1990。这个标准的副本可从ANSI购买(ANSI,11West42ndStreet,NewYork,NY10036)。附录D601附录D标准库函数419相似函数fabs函数、labs函数26.2节acos反余弦math.hdoubleacos(doublex);返回x的反余弦值。返回值的范围在0到π之间。如果x的值不在−1到+1之间,那么就会发生定义域错误。相关函数asin函数、atan函数、atan2函数、cos函数、sin函数、tan函数23.3节asctime把日期和时间转换成ASCII码time.hchar*asctime(conststructtm*timeptr);返回指向以空字符结尾的字符串的指针,其格式如下所示:MonJul1512:30:451996\n此格式的构造来源于timeptr指向的结构中的分解时间。相似函数ctime函数、strftime函数相关函数diffime函数、gmtime函数、localtime函数、mktime函数、time函数26.3节asin反正弦math.hdoubleasin(doublex);返回x的反正弦值。返回值的范围在-π/2到π/2之间。如果x的值不在-1到+1之间,那么就会发生定义域错误。相关函数acos函数、atan函数、atan2函数、cos函数、sin函数、tan函数23.3节asserrt诊断表达式的真值assert.hvoidassert(intexpression);如果expression的值非零,那么assert函数什么也不做。如果expression的值为零,那么assert函数向stderr写信息(说明expression的文本,含有assert函数的源文件名,以及assert函数的行数),然后通过调用abort函数终止程序。为了使assert函数无效,要在包含assert.h之前定义宏NDEBUG。相关函数abort函数24.1节atan反正切math.hdoubleatan(doublex);返回x的反正切值。返回值的范围在−π/2到π/2之间。相似函数atan2函数相关函数acos函数、asin函数、cos函数、sin函数、tan函数23.3节atan2商的反正切math.hdoubleatan2(doubley,doublex);返回y/x的反正切值。返回值的范围在−π到π之间。如果x和y的值都为零,那么就会发生定义域错误。相似函数atan函数相关函数acos函数、asin函数、cos函数、sin函数、tan函数23.3节atexit在程序退出处注册要调用的函数stdlib.hintatexit(void(*func)(void));注册由func指向的函数作为终止函数。如果程序正常终止(通过return或exit,而不是abort),那么将调用函数。可以重复调用atexit函数来注册多个终止函数。昀后一个注册的函数将是在终止前第一个被调用的函数。返回如果成功,返回零。如果不成功,则返回非零(达到由实现定义的限制)。相关函数exit函数也可参见abort函数26.2节atof把字符串转换成浮点数stdlib.h602603420附录D标准库函数doubleatof(constchar*nptr);返回对应字符串昀长初始部分的double型值,此字符串是由nptr指向的,且字符串昀长初始部分具有浮点数的格式。如果无法表示此数,那么函数的行为将是未定义的。相似函数strtod函数相关函数atoi函数、atol函数也可参见strtol函数、strtoul函数26.2节atoi把字符串转换成整数stdlib.hintatoi(constchar*nptr);返回对应字符串昀长初始部分的整数,此字符串是由nptr指向的,且字符串昀长初始部分具有整数的格式。如果无法表示此数,那么函数的行为将是未定义的。相似函数atol函数、strtol函数、strtoul函数相关函数atof函数也可参见strtod函数26.2节atol把字符串转换成长整数stdlib.hlongintatol(constchar*nptr);返回对应字符串昀长初始部分的长整数,此字符串是由nptr指向的,且字符串昀长初始部分具有整数的格式。如果无法表示此数,那么函数的行为将是未定义的。相似函数atoi函数、strtol函数、strtoul函数相关函数atof函数也可参见strtod函数26.2节bsearch二分检索stdlib.hvoid*bsearch(constvoid*key,constvoid*base,size_tmemb,size_tsize,int(*compar)(constvoid*,constvoid*));在有序数组中搜索由key指向的值。其中,数组存储在base地址上,且此数组有nmemb个元素,每个元素大小为size个字节。compar指向“比较函数”。换句话说当传递指向关键字的指针和数组元素时,比较函数必须返回负整数、零或正整数,这主要依赖于关键字是小于、等于还是大于数组元素。返回指向数组元素的指针,此数组元素是用来测试是否等于关键字的。如果没有找到关键字,那么返回空指针。相关函数qsort函数26.2节calloc分配并清除内存块stdlib.hvoid*calloc(size_tnmemb,size_tsize);为带有nmemb个元素的数组分配内存块,其中每个数组元素占size个字节。通过设置所有位为零来清除内存块。返回指向内存块开始处的指针。如果不能分配所要求大小的内存块,那么返回空指针。相似函数malloc函数、realloc函数相关函数free函数17.3节ceil上整数math.hdoubleceil(doublex);返回大于或等于x的昀小整数。相似函数floor函数23.3节clearerr清除流错误stdio.hvoidclearerr(FILE*stream);为stream指向的流清除文件尾指示器和错误指示器。相关函数feof函数、ferror函数、rewind函数22.3节604605附录D标准库函数421clock处理器时钟time.hclock_tclock(void);返回从程序开始执行起所经过的处理器时间(按照“时钟嘀嗒”来衡量的)。(用CLOCKS_PER_SEC除以此时间来转换成秒。)如果时间无效或者无法表示,那么返回(clock_t)-1。相似函数time函数也可参见difftime函数26.3节cos余弦math.hdoublecos(doublex);返回x的余弦值(按照弧度衡量的)。也可参见acos函数、asin函数、atan函数、atan2函数、sin函数、tan函数23.3节cosh双曲余弦math.hdoublecosh(doublex);返回x的双曲余弦值。如果x的数过大,那么可能会发生取值范围错误。相关函数sinh函数、tanh函数也可参见acos函数、asin函数、atan函数、atan2函数、cos函数、sin函数、tan函数23.3节ctime把日期和时间转换成字符串time.hchar*ctime(consttime_t*timer);返回指向字符串的指针,此字符串描述了本地时间,此时间等价于timer指向的日历时间。等价于asctime(localtime(timer))。相似函数asctime函数、strftime函数相关函数difftime函数、gmtime函数、localtime函数、mktime函数、time函数26.3节difftime时间差time.hdoubledifftime(time_ttime1,time_ttime0);返回time0(较早的时间)和time1之间的差值,此值按秒来衡量。相关函数asctime函数、ctime函数、gmtime函数、localtime函数、mktime函数、strftime函数、time函数也可参见clock函数26.3节div整数除法stdlib.hdiv_tdiv(intnumer,intdenom);返回含有quot(numer除以denom时的商)和rem(余数)的结构。如果无法表示结果,那么函数的行为是未定义的。相似函数ldiv函数26.2节exit退出程序stdlib.hvoidexit(intstatus);调用所有用atexit函数注册的函数,清洗全部输出缓冲区,关闭所有打开的流,移除任何由tmpfile产生的文件,并终止程序。status的值说明程序是否正常终止。status唯一可移植的值是0和EXIT_SUCCESS(两者都说明成功终止)以及EXIT_FAILURE(不成功的终止)。status的其他值都是由实现定义的。相似函数abort函数相关函数atexit函数9.5节、26.2节exp指数math.hdoubleexp(doublex);返回e的x次幂的值(即ex)。如果x的数过大,那么可能会发生取值范围错误。相似函数pow函数相关函数log函数606422附录D标准库函数也可参见log10函数23.3节fabs浮点数的绝对值math.hdoublefabs(doublex);返回x的绝对值。相似函数abs函数、labs函数23.3节fclos
本文标题:C语言标准库函数
链接地址:https://www.777doc.com/doc-4813853 .html