|
原 型: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: 失败。
原 型:int abswrite(int drive, int nsects, int lsect, void*buffer)
功能:将指定内容写入(调用DOS中断0x26)磁盘上的指定扇区,即使写入的地方是磁盘的逻辑结构、文件、FAT表和目录结构所在的扇区,也照常进行。
参数:
drive=0(A驱动器)、1(B驱动器)、
nsects=要写的扇区数(最多64K个);
lsect=起始逻辑扇区号;
buffer=要写入数据的内存起始地址。
返回值:0:成功;-1:失败。
#include <stdio.h>
#include <conio.h>
#include <process.h>
#include <dos.h> /*absread、abswrite */
int main(void)
{
int i, strt, ch_out, sector;
char buf[512];
printf("Insert a diskette into drive A and press any key\n");
getch();
sector = 0;
if (absread(0, 1, sector, &buf) != 0)
{
perror("Disk problem");
exit(1);
}
printf("Read OK\n");
strt = 3;
for (i=0; i<80; i++)
{
ch_out = buf[strt+i];
putchar(ch_out);
}
printf("\n");
return(0);
}
|