您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 规章制度 > C标准库函数集(头文件索引)
C标准库C标准库.........................................................................................................................................11输入与输出stdio.h..................................................................................................................12字符类测试ctype.h...............................................................................................................193字符串函数string.h...............................................................................................................224数学函数math.h....................................................................................................................295实用函数stdlib.h...................................................................................................................356诊断assert.h..........................................................................................................................437变长变元表stdarg.h..............................................................................................................448非局部跳转setjmp.h.............................................................................................................459信号处理signal.h...................................................................................................................4610日期与时间函数time.h.......................................................................................................4811由实现定义的限制limits.h和float.h................................................................................52本文包括大部分C标准库函数,但没有列出一些用途有限的函数以及某些可以简单的从其他函数合成的函数,也没有包含多字节和本地化函数。标准库中的各个函数、类型以及宏分别在以下标准头文件中说明:assert.hfloat.hmath.hstdarg.hstdlib.hctype.hlimits.hsetjmp.hstddef.hstring.herrno.hlocale.hsignal.hstdio.htime.h1输入与输出stdio.h头文件stdio.h定义了用于输入和输出的函数、类型和宏。最重要的类型是用于声明文件指针的FILE。另外两个常用的类型是size_t和fpos_t,size_t是由运算符sizeof产生的无符号整类型;fpos_t类型定义能够唯一说明文件中的每个位置的对象。由头部定义的最有用的宏是EOF,其值代表文件的结尾。1.1文件操作1.1.1fopen#includestdio.hFILE*fopen(constchar*filename,constchar*mode);返回:成功为FILE指针,失败为NULL打开以filename所指内容为名字的文件,返回与之关联的流。mode决定打开的方式,可选值如下:r打开文本文件用于读w创建文本文件用于写,并删除已存在的内容(如果有的话)a添加;打开或创建文本文件用于在文件末尾写rb打开二进制文件用于读wb创建二进制文件用于写,并删除已存在的内容(如果有的话)ab添加;打开或创建二进制文件用于在文件末尾写r+打开文本文件用于更新(即读和写)w+创建文本文件用于更新,并删除已存在的内容(如果有的话)a+添加;打开或创建文本文件用于更新和在文件末尾写rb+或r+b打开二进制文件用于更新(即读和写)wb+或w+b创建二进制文件用于更新,并删除已存在的内容(如果有的话)ab+或a+b添加;打开或创建二进制文件用于更新和在文件末尾写后六种方式允许对同一文件进行读和写,要注意的是,在写操作和读操作的交替过程中,必须调用fflush()或文件定位函数如fseek()、fsetpos()、rewind()等。文件名filename的长度最大为FILENAME_MAX个字符,一次最多可打开FOPEN_MAX个文件(在stdio.h中定义)。1.1.2freopen#includestdio.hFILE*freopen(constchar*filename,constchar*mode,FILE*stream);返回:成功为stream,失败为NULL以mode指定的方式打开文件filename,并使该文件与流stream相关联。freopen()先尝试关闭与stream关联的文件,不管成功与否,都继续打开新文件。该函数的主要用途是把系统定义的标准流stdin、stdout、stderr重定向到其他文件。1.1.3fflush#includestdio.hintfflush(FILE*stream);返回:成功为0,失败返回EOF对输出流(写打开),fflush()用于将已写到缓冲区但尚未写出的全部数据都写到文件中;对输入流,其结果未定义。如果写过程中发生错误则返回EOF,正常则返回0。fflush(NULL)用于刷新所有的输出流。程序正常结束或缓冲区满时,缓冲区自动清仓。1.1.4fclose#includestdio.hintflcose(FILE*stream);返回:成功为0,失败返回EOF刷新stream的全部未写出数据,丢弃任何未读的缓冲区内的输入数据并释放自动分配的缓冲区,最后关闭流。1.1.5remove#includestdio.hintremove(constchar*filename);返回:成功为0,失败为非0值删除文件filename。1.1.6rename#includestdio.hintrename(constchar*oldfname,constchar*newfname);返回:成功为0,失败为非0值把文件的名字从oldfname改为newfname。1.1.7tmpfile#includestdio.hFILE*tmpfile(void);返回:成功为流指针,失败为NULL以方式wb+创建一个临时文件,并返回该流的指针,该文件在被关闭或程序正常结束时被自动删除。1.1.8tmpnam#includestdio.hchar*tmpnam(chars[L_tmpnam]);返回:成功为非空指针,失败为NULL若参数s为NULL(即调用tmpnam(NULL)),函数创建一个不同于现存文件名字的字符串,并返回一个指向一内部静态数组的指针。若s非空,则函数将所创建的字符串存储在数组s中,并将它作为函数值返回。s中至少要有L_tmpnam个字符的空间。tmpnam函数在每次被调用时均生成不同的名字。在程序的执行过程中,最多只能确保生成TMP_MAX个不同的名字。注意tmpnam函数只是用于创建一个名字,而不是创建一个文件。1.1.9setvbuf#includestdio.hintsetvbuf(FILE*stream,char*buf,intmode,size_tsize);返回:成功返回0,失败返回非0控制流stream的缓冲区,这要在读、写以及其他任何操作之前设置。如果buf非空,则将buf指向的区域作为流的缓冲区,如果buf为NULL,函数将自行分配一个缓冲区。size决定缓冲区的大小。mode指定缓冲的处理方式,有如下值:•_IOFBF,进行完全缓冲;•_IOLBF,对文本文件表示行缓冲;•_IOLNF,不设置缓冲。1.1.10setbuf#includestdio.hvoidsetbuf(FILE*stream,char*buf);如果buf为NULL,则关闭流stream的的缓冲区;否则setbuf函数等价于:(void)setvbuf(stream,buf,_IOFBF,BUFSIZ)。注意自定义缓冲区的尺寸必须为BUFSIZ个字节。1.2格式化输出1.2.1fprintf#includestdio.hintfprintf(FILE*stream,constchar*format,…);返回:成功为实际写出的字符数,出错返回负值按照format说明的格式把变元表中变元内容进行转换,并写入stream指向的流。格式化字符串由两种类型的对象组成:普通字符(它们被拷贝到输出流)与转换规格说明(它们决定变元的转换和输出格式)。每个转换规格说明均以字符%开头,以转换字符结束。如果%后面的字符不是转换字符,那么该行为是未定义的。转换字符列表如下:字符说明d,iint;有符号十进制表示法ounsignedint;无符号八进制表示法(无前导0)x,Xunsignedint;无符号十六进制表示法(无前导0X和0x),对0x用abcdef,对0X用ABCDEFuunsignedint;无符号十进制表示法cint;单个字符,转换为unsignedchar类型后输出schar*;输出字符串直到'\0'或者达到精度指定的字符数fdouble;形如[-]mmm.ddd的十进制浮点数表示法,d的数目由精度确定。缺省精度为6位,精度为0时不输出小数点e,Edouble;形如[-]m.dddddde[+-]xx或者[-]m.ddddddE[+-]xx的十进制浮点数表示法,d的数目由精度确定。缺省精度为6位,精度为0时不输出小数点gGdouble;当指数值小于-4或大于等于精度时,采用%e或%E的格式;否则使用%f的格式。尾部的0与小数点不打印pvoid*;输出指针值(具体表示与实现相关)nint*;到目前为止以此格式调用函数输出的字符的数目将被写入到相应变元中,不进行变元转换%不进行变元转换,输出%在%与转换字符之间依次可以有下列标记:标记说明-指定被转换的变元在其字段内左对齐+指定在输出的数前面加上正负号空格如果第一个字符不是正负号,那么在其前面附加一个空格0对于数值转换,在输出长度小于字段宽度时,加前导0#指定其他输出格式,对于o格式,第一个数字必须为零;对于x/X格式,指定在输出的非0值前加0x
本文标题:C标准库函数集(头文件索引)
链接地址:https://www.777doc.com/doc-4390335 .html