absread()读磁盘绝对扇区函数原形:int absread(int drive,int num,int sectnum,void *buf)功能:从drive指定的驱动器磁盘上,sectnum指定的逻辑扇区号开始读取(通过DOS中断0x25读取)num个(最多64K个)扇区的内容,储存于buf所指的缓冲区中。
参数:drive=0对应A盘,drive=1对应B盘。
返回值:0:成功;-1:失败。
头文件:dos.habswrite()写磁盘绝对扇区函数原形:int abswrite(int drive,int nsects,int lsect,void *buffer)drive=0(A驱动器)、1(B驱动器)、nsects=要写的扇区数(最多64K个);lsect=起始逻辑扇区号;buffer=要写入数据的内存起始地址。
功能:将指定内容写入(调用DOS中断0x26)磁盘上的指定扇区,即使写入的地方是磁盘的逻辑结构、文件、FAT表和目录结构所在的扇区,也照常进行。
返回值:0:成功;-1:失败。
头文件:dos.hatof()将字符串转换成浮点数的函数原形:double atof(const char *s)功能:把s所指向的字符串转换成double类型。
s格式为:符号数字.数字E符号数字返回值:字符串的转换值。
头文件:math.h、stdlib.hatoi()将字符串转换成整型数的函数原形:int atoi(const char *s)功能:把s所指向的字符串转换成int类型。
s格式为:符号数字返回值:字符串的转换值。
若出错则返回0。
头文件:stdlib.hatol()将字符串转换成长整型数的函数原形:long atol(const char *s)功能:把s所指向的字符串转换成long int类型。
s格式为:符号数字返回值:字符串的转换值。
若出错则返回0。
头文件:stdlib.hbcd()把一个数转换成对应的BCD码的函数原形:bcd bcd(int x)bcd bcd(double x)bcd bcd(double x,int decimals)注意:BCD码的精度可达17位。
参数decimals是可选的,用来指定转换后小数点后的位数。
头文件:bcd.hbdos()原形∶int bdos(int fnum,unsigned dx,unsigned al)其中fnum是系统调用号;dx是传给寄存器DX的值;al是传给寄存器AL的值;功能∶DOS系统调用(INT21H)返回值∶AX中的值biosdisk()调用BIOS磁盘驱动程序函数原形:char biosdisk(int cmd,int drive,int head,int track,int sector,int nsects,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:数据缓冲区,定义为unsigned char buffer[];返回值:0x00-操作成功0x01-错误命令0x03-企图写具有写保护的磁盘0x07-驱动器参数设置错误[Page]0x10-磁盘读/CRC/ECC错误头文件:bios.h注:对于硬盘主引导记录扇区head=0,track=0,sector=1biosprint()调用BIOS打印机I/O接口的函数原形:int biosprint(int cmd,int abyte,int port)功能:通过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.hcalloc()分配内存函数原形:void *calloc(size_t nitems,size_t size)功能:在堆中分配一块内存,将该内存的内容全部清0。
返回值:返回指向新分配内存的指针。
空间不够则返回NULL。
头文件:stdlib.h、calloc.hceil()原形∶double ceil(double num)功能∶求不小于num的最小双精度整数头文件∶math.hcgets()读字符串函数原形:char *cgets(char *str)功能:从控制台读入一个字符串,并将该字符串(和字符串长度)存入有str所指向的地址中。
注意:在调用cgets之前,必须将要读入的字符串最大长度存入str[0]中,返回时str[1]被设置为实际读入的字符数。
实际字符串内容从str[2]开始,以空字符(\\0)结尾。
返回值:指向str[2]的指针。
头文件:conio.hchdir()改变当前目录的函数原形:int chdir(const char *path)功能:把由path指定的目录改为当前目录。
path参数中可以指定驱动器号,如“a:\\\\ddd”, 但只是改变该驱动器上的当前目录,对当前活动驱动器上的当前目录无影响。
返回值:0(成功);-1(失败)头文件:dir.h_chmod()改变文件存取权限的函数原形:int _chmod(const char *path,int func[,int attrib])功能:读取(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.hchmod()改变文件存取权限的函数原形:int chmod(const char *path,int amode)功能:根据amode的值,设置由path所指文件的存取权限。
amode的值存取权限S_IWRITE 允许写S_IREAD允许读(只读)S_IREAD|S_IWRITE 可读可写返回值:0(成功);-1(失败)头文件:io.h、sys\\stat.hfcloseall()关闭打开的流的函数原形:int fcloseall(void)功能:关闭所有打开的流,由stdin、stdout、stdprn、stderr和stdaux设置的流除外。
返回值:关闭流的总数。
如果发现错误则返回EOF。
头文件:stdio.hfeof()检查文件是否结束的函数原形∶int feof(FILE *fp)返回值∶文件结束返回非0值,否则返回0。
头文件∶stdio.hfgets()从流中读取一字符串的函数原形:char *fgets(char s[],int n,FILE *stream)使用格式:fgets(字符串指针,字符个数,文件指针)功能:从输入流stream中读入字符存到s串中。
当读了n-1个字符或遇到换行符时,函数停止读过程。
fgets在s串尾保留换行字符。
读入的最后一个字符后面加一个空字符。
返回值:成功时返回字符串参数s,出错或遇到文件结束时,返回NULL。
头文件:stdio.hfindfirst()函数和findnext()函数调用方式:整形数=findfirst(文件名,&结构变量名,属性常数组合(如0x26));其中定义struct ffblk 结构变量名;原形:int findfirst(path,buffer,attr)和int findnext(buffer)char *path;//要检索的文件名struct ffblk{char ff_reserved[21];char ff_attrib;//被检索的文件属性unsigned ff_ftime;//最后修改的时间//(0-4位:秒数/2;5-10位:分数;11-15位:小时数)unsigned ff_fdate;//最后修改的日期//(0-4位:日;5-8位:月;9-15位:年减1980)long ff_fsize;//文件大小char ff_name[13];//组名}*buffer;int attr;//要检索的文件属性功能:检索由path和attr指定的文件,把结果返回到buffer。
findfirst返回关于第一个指定文件的信息,findnext继续检索。
返回值:0(检索成功),-1(没有找到指定的文件)属性常数:FA_NORMAL(0x00)含意:Normal file, no attributesFA_RDONLY(0x01)含意:只读FA_HIDDEN(0x02)含意:隐含文件FA_SYSTEM(0x04)含意:系统文件FA_LABEL(0x08)含意:卷标FA_DIREC(0x10)含意:子目录FA_ARCH(0x20)含意:修改的文件Archive头文件:dir.h(dos.h)floodfill()填充区域的函数原形:void far floodfill(int x,int y,int border)功能:在图形设备上用颜色border围起来的区域将用当前填充颜色填充。
(x,y)是待填充区域的起点,若起点在封闭区域内,则区域内被填充;若起点在封闭区域外,则区域外被填充。
头文件:graphics.hfloor()原形∶double floor(double num)功能∶求不大于num的最大双精度整数头文件∶math.hfnmerge()建立文件路径函数原形:void fnmerge(char *path,const char *drive,const char *dir, const char *name,const char *ext)功能:合成drive:\\dir\\name.ext,放在path头文件:dir.hfnsplit()分解完整的路径名函数原形:int fnsplit(char *path,const char *drive,const char *dir,const char *name,const char *ext)功能:把文件名路径path分成4个部分存放。