Γράψιμο του προγράμματος για να γίνει το στήριγμα MBR:
/* Πρόγραμμα για να γίνει το στήριγμα MBR */
#include <bios.h>
#include <stdio.h>
int main(void)
{
struct diskinfo_t dinfo; /* Δομή για να φυλάξει τις πληροφορίες των παραμέτρων δίσκων */
int result;
int count=0;
char filename[80]; /* Αποθηκεύει το όνομα αρχείων που δίνεται από το χρήστη */
static char dbuf[512]; /*Απομονωτής στοιχείων 512 ψηφιολέξεων */
FILE *fp;
dinfo.drive = 0x80; /* αριθμός κίνησης για τον πρώτο σκληρό δίσκο */
dinfo.head = 0; /* επικεφαλής αριθμός δίσκων */
dinfo.track = 0; /* αριθμός διαδρομής */
dinfo.sector = 1; /* αριθμός τομέα */
dinfo.nsectors = 1; /*αρίθμηση τομέα */
dinfo.buffer = dbuf; /* απομονωτής στοιχείων */
printf("\n Εισάγετε το όνομα αρχείου και την πορεία για να αποθηκεύσετε το στήριγμα MBR \n ");
gets(filename);
//Ανοίξτε το αρχείο για να αποθηκεύσετε το στήριγμα MBR \\
if((fp=fopen(filename,"wb"))==NULL)
{
printf("Δεν θα μπορούσε να δημιουργήσει το αρχείο, να πιέσει οποιοδήποτε πλήκτρο στην έξοδο ...");
getch();
exit(0);
}
printf("Προσπάθεια να διαβάσει από το σκληρό δίσκο:\n");
//// Διαβάστε τον καθορισμένο τομέα των δίσκων\\\\
result = _bios_disk(_DISK_READ, &dinfo);
if ((result & 0xff00) == 0)
{
printf("Δίσκος που διαβάζεται από το σκληρό δίσκο: επιτυχής.\n");
/// Γράψτε 512 ψηφιολέξεις MBR στο αρχείο\\\\
while(count<512)
{
fprintf(fp,"%c",dbuf[count] & 0xff );
count++;
}
fclose(fp);
}
else
printf("Μην μπορέστε να διαβάσετε το σκληρό δίσκο, status = 0x%02x\n", result);
return 0;
}
|