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.h
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:失敗。
頭文件:dos.h
atof()將字符串轉換成浮點數的函數
原形:double atof(const char *s)
功能:把s所指向的字符串轉換成double類型。
s格式為:符號 數字.數字 E符號 數字
返回值:字符串的轉換值。
頭文件:math.h、stdlib.h
atoi()將字符串轉換成整型數的函數
原形:int atoi(const char *s)
功能:把s所指向的字符串轉換成int類型。
s格式為:符號 數字
返回值:字符串的轉換值。若出錯則返回0。
頭文件:stdlib.h
atol()將字符串轉換成長整型數的函數
原形:long atol(const char *s)
功能:把s所指向的字符串轉換成long int類型。
s格式為:符號 數字
返回值:字符串的轉換值。若出錯則返回0。
頭文件:stdlib.h
bcd()把一個數轉換成對應的BCD碼的函數
原形:bcd bcd(int x)
bcd bcd(double x)
bcd bcd(double x,int decimals)
注意:BD碼的精度可達17位。參數decimals是可選的,用來指定轉換後小數點後的位數。
頭文件:bcd.h
bdos()
原形∶int bdos(int fnum,unsigned dx,unsigned al)
其中fnum是系統調用號;dx是傳給寄存器DX的值;al是傳給寄存器AL的值;
功能∶系統調用(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/EC錯誤
頭文件:bios.h
注:對於硬盤主引導記錄扇區head=0,track=0,sector=1