使用dos.h的absread函数和codeblocks,C语言

时间:2015-03-22 10:41:25

标签: c gcc codeblocks dos

我想编写一个显示磁盘扇区内容的函数,为了实现这个目标,我在网上搜索并创建了一个名为:

的函数
 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

提前致谢。

0 个答案:

没有答案