文档介绍:C 语言的常用库函数使用方法分析及用途 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: 失败。头文件: abswrite() 写磁盘绝对扇区函数原形: int abswrite(int drive,int nsects,int lsect,void *buffer) drive=0(A 驱动器)、 1(B 驱动器)、 nsects= 要写的扇区数( 最多 64K 个); lsect= 起始逻辑扇区号; buffer= 要写入数据的内存起始地址。功能:将指定内容写入( 调用 DOS 中断 0x26) 磁盘上的指定扇区, 即使写入的地方是磁盘的逻辑结构、文件、 FAT 表和目录结构所在的扇区,也照常进行。返回值: 0: 成功;-1: 失败。头文件: atof() 将字符串转换成浮点数的函数原形: double atof(const char *s) 功能:把 s 所指向的字符串转换成 double 类型。 s 格式为: 符号数字. 数字 E 符号数字返回值:字符串的转换值。头文件: 、 atoi() 将字符串转换成整型数的函数原形: int atoi(const char *s) 功能:把 s 所指向的字符串转换成 int 类型。 s 格式为: 符号数字返回值:字符串的转换值。若出错则返回 0。头文件: atol() 将字符串转换成长整型数的函数原形: long atol(const char *s) 功能:把 s 所指向的字符串转换成 long int 类型。 s 格式为: 符号数字返回值:字符串的转换值。若出错则返回 0。头文件: bcd() 把一个数转换成对应的 BCD 码的函数原形: bcd bcd(int x) bcd bcd(double x) bcd bcd(double x,int decimals) 注意: BCD 码的精度可达 17位。参数 decimals 是可选的, 用来指定转换后小数点后的位数。头文件: bdos() 原形∶ 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- 驱动器参数设置错误 0x10- 磁盘读/CRC/ECC 错误头文件: 注:对于硬盘主引导记录扇区 head=0,track=0,sector=1 outport() 输出一个字到端口中的函数原形: void outport(int portid,int value) 调用方式: outport(0x 端口号, 要输出的字); 功能:往指定端口地址输出一个字。头文件: outport