>Необходимо считывать:
> -сектора с устройств (винт, флоп
>магнитооптика)
> -информацию об устройстве типа кол-во
>дорожек, голов, секторов, байт на
>сектор и т.д.
>как это сделать не вкурсе.
#include <stdio.h>
#include <fcntl.h>
#include <linux/hdreg.h>
int main()
{
struct hd_driveid hd;
int ide;
ide=open("/dev/hda",O_RDONLY);
ioctl(ide,HDIO_GET_IDENTITY,&hd);
printf("\nphysical cyls - %d\nphysical heads - %d\nphysical sectors per track - %d\n",
hd.cyls,hd.heads,hd.sectors);
printf("\nModel - %s\n\n",hd.model);
return 1;
}
Посмотри linux/hdreg.h.
Там есть структура hd_driveid, в которой после вызова ioctl будет собрана вся информация о твоем винчестере.
Насчет считывания секторов - пока еще сам не пробовал, в том же hdreg.h надо еще порыться, там в самом начале расписаны то ли порты, то ли регистры контроллера диска. Надо будет найти какой-нибудь живой пример, типа hdparm.
Как вариант - изучить ide.c.
Если что не понятно - пиши на ubob@mail.ru. Постараюсь помочь.
Удачи.
uncle Bob