C语言常用函数.docx

上传人:b****5 文档编号:3413822 上传时间:2022-11-22 格式:DOCX 页数:28 大小:38.77KB
下载 相关 举报
C语言常用函数.docx_第1页
第1页 / 共28页
C语言常用函数.docx_第2页
第2页 / 共28页
C语言常用函数.docx_第3页
第3页 / 共28页
C语言常用函数.docx_第4页
第4页 / 共28页
C语言常用函数.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

C语言常用函数.docx

《C语言常用函数.docx》由会员分享,可在线阅读,更多相关《C语言常用函数.docx(28页珍藏版)》请在冰豆网上搜索。

C语言常用函数.docx

C语言常用函数

C语言的常用库函数

函数1。

absread()读磁盘绝对扇区函数

原形:

intabsread(intdrive,intnum,intsectnum,void*buf)

功能:

从drive指定的驱动器磁盘上,sectnum指定的逻辑扇区号开始读取(通过DOS中断0x25读取)num个(最多64K个)扇区的内容,储存于buf所指的缓冲区中。

参数:

drive=0对应A盘,drive=1对应B盘。

返回值:

0:

成功;-1:

失败。

头文件:

dos.h

函数2。

abswrite()写磁盘绝对扇区函数

原形:

intabswrite(intdrive,intnsects,intlsect,void*buffer)

  drive=0(A驱动器)、1(B驱动器)、

  nsects=要写的扇区数(最多64K个);

  lsect=起始逻辑扇区号;

  buffer=要写入数据的内存起始地址。

功能:

将指定内容写入(调用DOS中断0x26)磁盘上的指定扇区,即使写入的地方是磁盘的逻辑结构、文件、FAT表和目录结构所在的扇区,也照常进行。

返回值:

0:

成功;-1:

失败。

头文件:

dos.h

函数3。

atof()将字符串转换成浮点数的函数

原形:

doubleatof(constchar*s)

功能:

把s所指向的字符串转换成double类型。

   s格式为:

符号 数字.数字 E符号 数字

返回值:

字符串的转换值。

头文件:

math.h、stdlib.h

函数4。

atoi()将字符串转换成整型数的函数

原形:

intatoi(constchar*s)

功能:

把s所指向的字符串转换成int类型。

   s格式为:

符号 数字

返回值:

字符串的转换值。

若出错则返回0。

头文件:

stdlib.h

函数5。

atol()将字符串转换成长整型数的函数

原形:

longatol(constchar*s)

功能:

把s所指向的字符串转换成longint类型。

   s格式为:

符号 数字

返回值:

字符串的转换值。

若出错则返回0。

头文件:

stdlib.h

函数6。

bcd()把一个数转换成对应的BCD码的函数

原形:

bcdbcd(intx)

   bcdbcd(doublex)

   bcdbcd(doublex,intdecimals)

注意:

BCD码的精度可达17位。

参数decimals是可选的,用来指定转换后小数点后的位数。

头文件:

bcd.h

函数7。

bdos()

原形∶intbdos(intfnum,unsigneddx,unsignedal)

  其中fnum是系统调用号;dx是传给寄存器DX的值;al是传给寄存器AL的值;

功能∶DOS系统调用(INT21H)

返回值∶AX中的值

函数8。

biosdisk()调用BIOS磁盘驱动程序函数

原形:

charbiosdisk(intcmd,intdrive,inthead,inttrack,intsector,intnsects,void*buffer)

功能:

使用中断0x13,直接调用BIOS进行磁盘操作

参数:

(1)cmd:

    2-数据以每扇区512字节的格式读入buffer,起始扇区由head、track和sector定,扇区数由nsects定。

    3-将buffer中的数据按每扇区512字节写入磁盘。

    4-对扇区进行数据校验。

    6-格式化一个磁盘并对化扇区设置化标志。

    8-返回当前驱动器参数在buffer的前4个字节中。

    10-长读,每扇区读入512字节加上额外的4个字节。

    11-长写,每扇区写入512字节加上额外的4个字节。

   

(2)drive:

0-第一个软驱;1-第二个软驱;0x80-第一个硬驱

   (3)head:

磁头

   (4)track:

磁道

   (5)sector:

扇区

   (6)nsects:

扇区数

   (7)buffer:

数据缓冲区,定义为unsignedcharbuffer[];

返回值:

0x00-操作成功

    0x01-错误命令

    0x03-企图写具有写保护的磁盘

    0x07-驱动器参数设置错误

    0x10-磁盘读/CRC/ECC错误

头文件:

bios.h

注:

对于硬盘主引导记录扇区head=0,track=0,sector=1

函数9。

biosprint()调用BIOS打印机I/O接口的函数

原形:

intbiosprint(intcmd,intabyte,intport)

功能:

通过BIOS中断0x17在由参数port指定的打印机上完成各种打印机功能。

   port=0(LPT1)

     =1(LPT2);

   cmd=0(打印字符abyte)

     1(初始化打印机端口)

     2(读打印机状态);

   abyte=0-255;

返回值:

打印机状态

   位0(设备超时);位3(I/O出错);位4(打印机已选择);位5(没纸);位6(打印机确认);位7(不忙)

头文件:

bios.h

函数10。

calloc()分配内存函数

原形:

void*calloc(size_tnitems,size_tsize)

功能:

在堆中分配一块内存,将该内存的内容全部清0。

返回值:

返回指向新分配内存的指针。

空间不够则返回NULL。

头文件:

stdlib.h、calloc.h

函数11。

ceil()

原形∶doubleceil(doublenum)

功能∶求不小于num的最小双精度整数

头文件∶math.h

函数12。

cgets()读字符串函数

原形:

char*cgets(char*str)

功能:

从控制台读入一个字符串,并将该字符串(和字符串长度)存入有str所指向的地址中。

注意:

在调用cgets之前,必须将要读入的字符串最大长度存入str[0]中,返回时str[1]被设置为实际读入的字符数。

实际字符串内容从str[2]开始,以空字符(\0)结尾。

返回值:

指向str[2]的指针。

头文件:

conio.h

函数13。

chdir()改变当前目录的函数

原形:

intchdir(constchar*path)

功能:

把由path指定的目录改为当前目录。

path参数中可以指定驱动器号,如"a:

\\ddd",但只是改变该驱动器上的当前目录,对当前活动驱动器上的当前目录无影响。

返回值:

0(成功);-1(失败)

头文件:

dir.h

函数14。

_chmod()改变文件存取权限的函数

原形:

int_chmod(constchar*path,intfunc[,intattrib])

功能:

读取(func=0时)或设置(func=1时)DOS文件属性。

   attrib=FA_RDONLY只读

   attrib=FA_HIDDEN隐藏文件

   attrib=FA_SYSTEM系统文件

   attrib=FA_LABLE卷标

   attrib=FA_DIREC目录

   attrib=FA_ARCH档案

返回值:

失败时返回-1。

成功时返回文件的属性字节,如果返回值&FA_RDONLY不等于0,则文件是只读文件;......

头文件:

io.h、dos.h

函数15。

chmod()改变文件存取权限的函数

原形:

intchmod(constchar*path,intamode)

功能:

根据amode的值,设置由path所指文件的存取权限。

  amode的值     存取权限

  S_IWRITE     允许写

  S_IREAD      允许读(只读)

  S_IREAD|S_IWRITE 可读可写

返回值:

0(成功);-1(失败)

头文件:

io.h、sys\stat.h

函数16。

clock()

原形∶longclock(void)

功能∶测得从程序开始到调用处处理机所用的时间

头文件∶time.h

函数17。

close()关闭文件函数

原形:

intclose(inthandle)

功能:

关闭由文件句柄所指向的文件,句柄是调用_creat、creat、creatnew、creattemp、dup、dup2、_open或open时得到的。

该函数并不在文件末尾写一个Ctrl-Z字符,如果想用该字符结束文件,必须显式地给出该字符。

返回值:

0(成功);-1(失败)

头文件:

io.h

函数18。

closegraph()关闭图形函数

原形:

voidfarclosegraph(void)

功能:

释放图形系统分配的所有内存,将屏幕恢复到调用initgraph之前的模式。

头文件:

graphics.h

函数19。

cos()

原形∶doublecos(doublearg)

功能∶计算arg(弧度)的余弦值

头文件∶math.h

函数20。

ctrlbrk()设置ctrl-break处理程序的函数

原形:

voidctrlbrk(int(*handle)(void))

功能:

修改中断向量0x23,使用新的ctrl-break中断处理函数。

用法:

ctrlbrk(函数名);

  先定义函数:

int函数名(void){...}

头文件:

dos.h

函数21。

delay()暂停函数

原形:

voiddelay(unsignedmilliseconds)

功能:

暂停当前所执行的程序milliseconds毫秒。

头文件:

dos.h

函数22。

disable()屏蔽中断的宏

原形:

voiddisble(void)

功能:

屏蔽中断,只允许从外部设备来的不可屏蔽中断(NMI)。

头文件:

dos.h

函数23。

enable()开硬件中断的宏

原形:

voidenable(void)

功能:

开放中断,允许接受任何设备产生的中断。

头文件:

dos.h

函数24。

exec()加载并运行其它程序的函数族

execl(),execle(),execlp(),execlpe(),

execv(),execve(),execvp(),execvpe()

原形∶intexecl(char*path,char*arg0,*arg1,...,*argn,NULL)

intexecle(char*path,char*arg0,*arg1,...,*argn,NULL,char**env)

intexeclp(char*path,char*arg0,*arg1,...,*argn,NULL)

intexeclpe(char*path,char*arg0,*arg1,...,*argn,NULL,char**env)

intexecv(char*path,char*argv[])

intexecve(char*path,char*argv[],char**env)

intexecvp(char*path,char*argv[])

intexecvpe(char*path,char*argv[],char**env)

  其中,path是调用的子程序的文件名,在exec后面的后缀具有某种功能:

   p表示函数能够在由DOS环境变量PATH的目录中搜索子进程文件,如果path中未指明文件所在目录,函数将首先在当前目录中找,然后在DOS环境变量指定的目录中找。

   l表示参数指针(arg0,...,argn)按单独参数传送。

当预先知道要传送的参数个数时,通常用带后缀l的函数。

   v表示参数指针(arg0,...,argn)按指针数组传送。

当要传送的参数可变时,使用带后缀v的函数。

   e表示参数env可以传送到子进程,该函数可用来修改子进程的环境。

若无e后缀,子进程将继承父进程的环境。

注意:

arg0+...+argn,或arg[0]+...+arg[n]的总长度必需小于128字节。

当调用exec函数时,原先已经打开的文件在子进程中仍然是打开的。

功能:

加载并运行其它程序,调用时必须有足够的内存空间用于加载和执行子程序,子程序将覆盖父程序。

头文件:

process.h

函数25。

farcalloc()从远堆中分配内存的函数

原形:

voidfar*farcalloc(unsignedlongnunits,unsignedlongunitsz)

功能:

从远堆中为包含nunits个元素的数组分配内存,每一区unitsz字节长。

用法:

fptr=farcalloc(数目,sizeof(char));

  先定义:

charfar*fptr;

注意:

所有可用RAM能被分配;大于64K的块能被分配;用远指针存取该块。

微模式不能用。

返回值:

返回指向新分配块的指针,若内存不够,则返回NULL。

头文件:

alloc.h

函数26。

farfree()从远堆中释放一块已分配内存的函数

原形:

voidfarfree(voidfar*block)

头文件:

alloc.h

函数27。

farmalloc()从远堆中分配内存的函数

原形:

voidfar*farmalloc(unsignedlongnbytes)

使用方式:

fptr=farmalloc(字节数);

    先定义charfar*fptr;

功能:

从远堆中分配长nbytes字节的内存。

注意:

所有可用RAM能被分配;大于64K的块能被分配;用远指针存取该块。

微模式不能用。

返回值:

返回指向新分配内存的指针,若内存不够,则返回NULL。

头文件:

alloc.h

函数28。

farrealloc()调整远堆中已分配块的函数

原形:

voidfar*farrealloc(voidfar*oldblock,unsignedlongnbytes)

返回值:

返回调整后的新内存地址。

若不能重新分配,则返回NULL。

头文件:

alloc.h

函数29。

fclose()关闭一个流函数

原形:

intfclose(FILE*stream)

使用方式:

fclose(文件指针名);其中文件指针名=fopen();

功能:

关闭指定的流,关闭前清除所有与stream相联的缓冲区,释放系统分配的缓冲区,但由setbuf设置的缓冲区不能自动释放。

返回值:

0(成功);EOF(失败)

头文件:

stdio.h

函数30。

fcloseall()关闭打开的流的函数

原形:

intfcloseall(void)

功能:

关闭所有打开的流,由stdin、stdout、stdprn、stderr和stdaux设置的流除外。

返回值:

关闭流的总数。

如果发现错误则返回EOF。

头文件:

stdio.h

函数31。

feof()检查文件是否结束的函数

原形∶intfeof(FILE*fp)

返回值∶文件结束返回非0值,否则返回0。

头文件∶stdio.h

函数32。

fgets()从流中读取一字符串的函数

原形:

char*fgets(chars[],intn,FILE*stream)

使用格式:

fgets(字符串指针,字符个数,文件指针)

功能:

从输入流stream中读入字符存到s串中。

当读了n-1个字符或遇到换行符时,函数停止读过程。

fgets在s串尾保留换行字符。

读入的最后一个字符后面加一个空字符。

返回值:

成功时返回字符串参数s,出错或遇到文件结束时,返回NULL。

头文件:

stdio.h

函数33。

findfirst()函数和findnext()函数

调用方式:

整形数=findfirst(文件名,&结构变量名,属性常数组合(如0x26));其中定义structffblk结构变量名;

原形:

intfindfirst(path,buffer,attr)和intfindnext(buffer)

   char*path;//要检索的文件名

   structffblk

    {

    charff_reserved[21];

    charff_attrib;//被检索的文件属性

    unsignedff_ftime;//最后修改的时间

     //(0-4位:

秒数/2;5-10位:

分数;11-15位:

小时数)

    unsignedff_fdate;//最后修改的日期

     //(0-4位:

日;5-8位:

月;9-15位:

年减1980)

    longff_fsize;//文件大小

    charff_name[13];//组名

    }*buffer;

   intattr;//要检索的文件属性

功能:

检索由path和attr指定的文件,把结果返回到buffer。

findfirst返回关于第一个指定文件的信息,findnext继续检索。

返回值:

0(检索成功),-1(没有找到指定的文件)

属性常数:

  FA_NORMAL(0x00)  含意:

Normalfile,noattributes

  FA_RDONLY(0x01)  含意:

只读

  FA_HIDDEN(0x02)  含意:

隐含文件

  FA_SYSTEM(0x04)  含意:

系统文件

  FA_LABEL(0x08)  含意:

卷标

  FA_DIREC(0x10)  含意:

子目录

  FA_ARCH(0x20)   含意:

修改的文件Archive

头文件:

dir.h(dos.h)

函数34。

floodfill()填充区域的函数

原形:

voidfarfloodfill(intx,inty,intborder)

功能:

在图形设备上用颜色border围起来的区域将用当前填充颜色填充。

(x,y)是待填充区域的起点,若起点在封闭区域内,则区域内被填充;若起点在封闭区域外,则区域外被填充。

头文件:

graphics.h

函数35。

floor()

原形∶doublefloor(doublenum)

功能∶求不大于num的最大双精度整数

头文件∶math.h

函数36。

fnmerge()建立文件路径函数

原形:

voidfnmerge(char*path,constchar*drive,constchar*dir,constchar*name,constchar*ext)

功能:

合成drive:

\dir\name.ext,放在path

头文件:

dir.h

函数37。

fnsplit()分解完整的路径名函数

原形:

intfnsplit(char*path,constchar*drive,constchar*dir,constchar*name,constchar*ext)

功能:

把文件名路径path分成4个部分存放。

  其中drive中有冒号;dir中有开始和结尾的反斜杠;ext包括开始圆点

返回值:

如果有扩展名,则 返回值&EXTENSION!

=0

    如果有文件名,则 返回值&FILENAME!

=0

    如果有目录名,则 返回值&DIRECTORY!

=0

    如果有驱动器号,则返回值&DIRVE!

=0

头文件:

dir.h

函数38。

fopen()打开一个流函数

原形:

FILE*fopen(constchar*filename,constchar*mode)

功能:

打开用filename指定的文件,并使其与一个流相联。

使用方式:

文件指针名=fopen("文件名","处理方式")

    "处理方式"取:

    "rt"  打开一个文本文件,只能读。

    "wt"  生成一个文本文件,只能写。

若文件存在则被重写。

    "at"  打开一个文本文件,只能在文件尾部添加。

    "rb"  打开一个二进制文件,只能读。

    "wb"  生成一个二进制文件,只能写。

    "ab"  打开一个二进制文件,只能在文件尾部添加。

    "rt+" 打开一个文本文件,可读可写。

    "wt+" 生成一个文本文件,可读可写。

    "at+" 打开一个文本文件,可读可添加。

    "rb+" 打开一个二进制文件,可读可写。

    "wb+" 生成一个二进制文件,可读可写。

    "ab+" 打开一个二进制文件,可读可添加。

返回值:

指明流的指针(成功时)或NULL(失败时)

注:

需先定义FILE*文件指针名;

  "文件名"若用argv[1]代替,则可使用命令行形式指定文件名

函数39。

FP_OFF()获取远地址偏移量的宏

原形:

unsignedFP_OFF(voidfar*p)

功能:

取得和设置远指针*p的偏移量

返回值:

偏移量

头文件:

dos.h

函数40。

fprintf()传送输出到一个流中的函数

原形:

intfprintf(FILE*stream,constchar*format[,argument,...])

功能:

①向文件指针指向的文件输出ASCⅡ代码

   ②向显示器输出错误信息

使用形式:

   ①fprintf(文件指针,"输出格式",输出项系列);

   ②fprintf(stderr,"错误信息");

使用实例:

fprintf(stream,"%d%c%f",i,c,f);

     其中定义FILE*stream;

         inti; charc; floatf;

返回值:

成功则返回输出的字节数,错误则返回EOF。

头文件:

stdio.h

函数41。

FP_SEG()获取远地址段值的宏

原形:

unsignedFP_SEG(voidfar*p)

功能:

取得和设置远指针*p段地址值

返回值:

段地址值

头文件:

dos.h

free()释放已分配内存的函数

原形:

voidfree(void*block)

功能:

释放由calloc、malloc、realloc函数调用所分配的内存。

头文件:

stdlib.h、alloc.h

函数42。

fscanf()格式化输入函数

原形:

intfscanf(FILE*stream,constchar*format[,address,...])

功能:

从一个流中扫描输入字段,一次扫描一个字符,每个输入字段根据format所指格式指示符格式化后,把输入字段存在format后面由地址参数给出的位置上。

使用格式:

fscanf(文件指针,"输入格式",输入项系列);

使用实例:

fscanf(fp,"%d",&b);

   从fp指向的文件中读取十进制整数(ASCⅡ形式)赋予变量b

注:

当文件指针是stdin时,与scanf功能完全相同

头文件:

stdio.h

函数43。

fseek()移动文件指针函数

原形:

intfseek(FILE*stream,longoffset,intwhence)

作用:

强制一个文件的位置指针指向某个特定的位置(甚至超出文件的尾部)。

使用格式:

fseek(*文件指针,偏移(长整型),起点)

     定义FILE*文件指针名;

     "起点"取值:

     0或SEEK_SET(表示文件开头)

     1或SEEK_CUR(表示当前位置)

  

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1