我想编写一个显示磁盘扇区内容的函数,为了实现这个目标,我在网上搜索并创建了一个名为:
的函数 int absread(int drive, int num_sec, long start_sec, char *buffer);
函数absread必须位于dos.h头文件中。 在编译以下示例时,我得到一个编译错误:未定义的对absread的引用
#include <stdio.h>
#include <dos.h>
#include <ctype.h>
#include <stdlib.h>
static unsigned char buffer[512];
int main(int argc, const char *const argv[])
{
int i, drive, sector;
unsigned char *p;
unsigned code;
if (argc < 3)
goto usage_error;
drive = toupper(*argv[1]) - 'A';
if (drive < 0 || drive > 25)
goto usage_error;
sector = atoi(argv[2]);
code = absread(drive, 1, sector, (char *)buffer);
if (code != 0)
{
fprintf(stderr, "Error, dos code %02x, bios code %02x\n",
code & 0xff, code >> 8);
exit(EXIT_FAILURE);
}
printf("Drive %c, logical sector %d:\n",
drive + 'A', sector);
for (p = buffer; p < buffer + sizeof buffer; p += 16)
{
for (i = 0; i < 16; i += 1)
printf("%02x ", p[i]);
printf(" ");
for (i = 0; i < 16; i += 1)
if (isprint(p[i]))
printf("%c", p[i]);
else
printf(".");
printf("\n");
}
exit(EXIT_SUCCESS);
usage_error:
fprintf(stderr,"Usage: DISKDUMP drive-letter sector-number\n");
exit(EXIT_FAILURE);
}
在codeblocks的dos.h头文件中,没有名为absread的函数, 有人可以帮我吗?如何使用这个功能?
注意: 我在Windows 7上使用带有GNU GCC编译器的codeBlocks
提前致谢。