A類アルファベット--absread、abswrite
1228 ワード
プロトタイプ:int absread(int drive,int num,int sectnum,void*buf)
機能:driveで指定されたドライブディスク上で、sectnumで指定された論理セクタ番号からnum個(最大64 K個)のセクタの内容を読み出し(DOSで0 x 25読み出しを中断)、bufで指定されたバッファに格納します.
パラメータ:drive=0はAディスク、drive=1はBディスクに対応します.
戻り値:0:成功;-1:失敗.
プロトタイプ:int abswrite(int drive,int nsects,int lsect,void*buffer)
機能:指定内容をディスク上の指定セクタに書き込み(DOS割り込み0 x 26を呼び出す)、書き込み先がディスクの論理構造、ファイル、FATテーブル、ディレクトリ構造があるセクタであっても、通常通りに行います.
パラメータ:
drive=0(Aドライブ)、1(Bドライブ)、
nsects=書くセクタ数(最大64 K個);
lsect=開始論理セクタ番号;
buffer=データを書き込むメモリの先頭アドレス.
戻り値:0:成功;-1:失敗.
機能:driveで指定されたドライブディスク上で、sectnumで指定された論理セクタ番号からnum個(最大64 K個)のセクタの内容を読み出し(DOSで0 x 25読み出しを中断)、bufで指定されたバッファに格納します.
パラメータ:drive=0はAディスク、drive=1はBディスクに対応します.
戻り値:0:成功;-1:失敗.
プロトタイプ:int abswrite(int drive,int nsects,int lsect,void*buffer)
機能:指定内容をディスク上の指定セクタに書き込み(DOS割り込み0 x 26を呼び出す)、書き込み先がディスクの論理構造、ファイル、FATテーブル、ディレクトリ構造があるセクタであっても、通常通りに行います.
パラメータ:
drive=0(Aドライブ)、1(Bドライブ)、
nsects=書くセクタ数(最大64 K個);
lsect=開始論理セクタ番号;
buffer=データを書き込むメモリの先頭アドレス.
戻り値:0:成功;-1:失敗.
#include
#include
#include
#include /*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
");
getch();
sector = 0;
if (absread(0, 1, sector, &buf) != 0)
{
perror("Disk problem");
exit(1);
}
printf("Read OK
");
strt = 3;
for (i=0; i<80; i++)
{
ch_out = buf[strt+i];
putchar(ch_out);
}
printf("
");
return(0);
}