C语言的常用库函数Word下载.docx
- 文档编号:19819908
- 上传时间:2023-01-10
- 格式:DOCX
- 页数:41
- 大小:38.27KB
C语言的常用库函数Word下载.docx
《C语言的常用库函数Word下载.docx》由会员分享,可在线阅读,更多相关《C语言的常用库函数Word下载.docx(41页珍藏版)》请在冰豆网上搜索。
注意:
BCD码的精度可达17位。
参数decimals是可选的,用来指定转换后小数点后的位数。
bcd.h
bdos()
原形∶intbdos(intfnum,unsigneddx,unsignedal)
其中fnum是系统调用号;
dx是传给寄存器DX的值;
al是传给寄存器AL的值;
功能∶DOS系统调用(INT21H)
返回值∶AX中的值
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
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(不忙)
calloc()分配内存函数
void*calloc(size_tnitems,size_tsize)
在堆中分配一块内存,将该内存的内容全部清0。
返回指向新分配内存的指针。
空间不够则返回NULL。
stdlib.h、calloc.h
ceil()
原形∶doubleceil(doublenum)
功能∶求不小于num的最小双精度整数
头文件∶math.h
cgets()读字符串函数
char*cgets(char*str)
从控制台读入一个字符串,并将该字符串(和字符串长度)存入有str所指向的地址中。
在调用cgets之前,必须将要读入的字符串最大长度存入str[0]中,返回时str[1]被设置为实际读入的字符数。
实际字符串内容从str[2]开始,以空字符(\0)结尾。
指向str[2]的指针。
conio.h
chdir()改变当前目录的函数
intchdir(constchar*path)
把由path指定的目录改为当前目录。
path参数中可以指定驱动器号,如“a:
\\ddd”,但只是改变该驱动器上的当前目录,对当前活动驱动器上的当前目录无影响。
0(成功);
-1(失败)
dir.h
_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
chmod()改变文件存取权限的函数
intchmod(constchar*path,intamode)
根据amode的值,设置由path所指文件的存取权限。
amode的值 存取权限
S_IWRITE 允许写
S_IREAD 允许读(只读)
S_IREAD|S_IWRITE 可读可写
io.h、sys\stat.h
clock()
原形∶longclock(void)
功能∶测得从程序开始到调用处处理机所用的时间
头文件∶time.h
close()关闭文件函数
intclose(inthandle)
关闭由文件句柄所指向的文件,句柄是调用_creat、creat、creatnew、creattemp、dup、dup2、_open或open时得到的。
该函数并不在文件末尾写一个Ctrl-Z字符,如果想用该字符结束文件,必须显式地给出该字符。
io.h
closegraph()关闭图形函数
voidfarclosegraph(void)
释放图形系统分配的所有内存,将屏幕恢复到调用initgraph之前的模式。
graphics.h
cos()
原形∶doublecos(doublearg)
功能∶计算arg(弧度)的余弦值
ctrlbrk()设置ctrl-break处理程序的函数
voidctrlbrk(int(*handle)(void))
修改中断向量0x23,使用新的ctrl-break中断处理函数。
用法:
ctrlbrk(函数名);
先定义函数:
int函数名(void){...}
delay()暂停函数
voiddelay(unsignedmilliseconds)
暂停当前所执行的程序milliseconds毫秒。
disable()屏蔽中断的宏
voiddisble(void)
屏蔽中断,只允许从外部设备来的不可屏蔽中断(NMI)。
enable()开硬件中断的宏
voidenable(void)
开放中断,允许接受任何设备产生的中断。
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
farcalloc()从远堆中分配内存的函数
voidfar*farcalloc(unsignedlongnunits,unsignedlongunitsz)
从远堆中为包含nunits个元素的数组分配内存,每一区unitsz字节长。
fptr=farcalloc(数目,sizeof(char));
先定义:
charfar*fptr;
所有可用RAM能被分配;
大于64K的块能被分配;
用远指针存取该块。
微模式不能用。
返回指向新分配块的指针,若内存不够,则返回NULL。
alloc.h
farfree()从远堆中释放一块已分配内存的函数
voidfarfree(voidfar*block)
farmalloc()从远堆中分配内存的函数
voidfar*farmalloc(unsignedlongnbytes)
使用方式:
fptr=farmalloc(字节数);
先定义charfar*fptr;
从远堆中分配长nbytes字节的内存。
返回指向新分配内存的指针,若内存不够,则返回NULL。
farrealloc()调整远堆中已分配块的函数
voidfar*farrealloc(voidfar*oldblock,unsignedlongnbytes)
返回调整后的新内存地址。
若不能重新分配,则返回NULL。
fclose()关闭一个流函数
intfclose(FILE*stream)
fclose(文件指针名);
其中文件指针名=fopen();
关闭指定的流,关闭前清除所有与stream相联的缓冲区,释放系统分配的缓冲区,但由setbuf设置的缓冲区不能自动释放。
EOF(失败)
stdio.h
fcloseall()关闭打开的流的函数
intfcloseall(void)
关闭所有打开的流,由stdin、stdout、stdprn、stderr和stdaux设置的流除外。
关闭流的总数。
如果发现错误则返回EOF。
stdio.h
feof()检查文件是否结束的函数
原形∶intfeof(FILE*fp)
返回值∶文件结束返回非0值,否则返回0。
头文件∶stdio.h
fgets()从流中读取一字符串的函数
char*fgets(chars[],intn,FILE*stream)
使用格式:
fgets(字符串指针,字符个数,文件指针)
从输入流stream中读入字符存到s串中。
当读了n-1个字符或遇到换行符时,函数停止读过程。
fgets在s串尾保留换行字符。
读入的最后一个字符后面加一个空字符。
成功时返回字符串参数s,出错或遇到文件结束时,返回NULL。
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)
floodfill()填充区域的函数
voidfarfloodfill(intx,inty,intborder)
在图形设备上用颜色border围起来的区域将用当前填充颜色填充。
(x,y)是待填充区域的起点,若起点在封闭区域内,则区域内被填充;
若起点在封闭区域外,则区域外被填充。
floor()
原形∶doublefloor(doublenum)
功能∶求不大于num的最大双精度整数
fnmerge()建立文件路径函数
voidfnmerge(char*path,constchar*drive,constchar*dir,constchar*name,constchar*ext)
合成drive:
\dir\name.ext,放在path
fnsplit()分解完整的路径名函数
intfnsplit(char*path,constchar*drive,constchar*dir,constchar*name,constchar*ext)
把文件名路径path分成4个部分存放。
其中drive中有冒号;
dir中有开始和结尾的反斜杠;
ext包括开始圆点
如果有扩展名,则 返回值&
EXTENSION!
=0
如果有文件名,则 返回值&
FILENAME!
如果有目录名,则 返回值&
DIRECTORY!
如果有驱动器号,则返回值&
DIRVE!
dir.h
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]代替,则可使用命令行形式指定文件名
FP_OFF()获取远地址偏移量的宏
unsignedFP_OFF(voidfar*p)
取得和设置远指针*p的偏移量
偏移量
dos.h
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。
FP_SEG()获取远地址段值的宏
unsignedFP_SEG(voidfar*p)
取得和设置远指针*p段地址值
段地址值
free()释放已分配内存的函数
voidfree(void*block)
释放由calloc、malloc、realloc函数调用所分配的内存。
stdlib.h、alloc.h
fscanf()格式化输入函数
intfscanf(FILE*stream,constchar*format[,address,...])
从一个流中扫描输入字段,一次扫描一个字符,每个输入字段根据format所指格式指示符格式化后,把输入字段存在format后面由地址参数给出的位置上。
fscanf(文件指针,"
输入格式"
输入项系列);
fscanf(fp,"
%d"
&
b);
从fp指向的文件中读取十进制整数(ASCⅡ形式)赋予变量b
当文件指针是stdin时,与scanf功能完全相同
fseek()移动文件指针函数
intfseek(FILE*stream,longoffset,intwhence)
作用:
强制一个文件的位置指针指向某个特定的位置(甚至超出文件的尾部)。
fseek(*文件指针,偏移(长整型),起点)
定义FILE*文件指针名;
"
起点"
取值:
0或SEEK_SET(表示文件开头)
1或SEEK_CUR(表示当前位置)
2或SEEK_END(表示文件尾端)
0表示成功,非0值表示失败
fwrite()把参数写入流中的函数
size_tfwrite(constvoid*ptr,size_tsize,size_tn,FILE*stream)
附加n个数据项(每个数据项长度为size个字节)到指定的输出文件后,数据从ptr处开始添加。
ptr是指向任意对象的指针。
返回
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 常用 库函数