Πρόγραμμα για να αποκατασταθεί το 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;
/*Πάρτε το χρήστη εισαγμένο για την εφεδρική πορεία αρχείων MBR */
printf("\n Εισάγετε το όνομα αρχείου και την πορεία του εφεδρικού αρχείου MBR \n ");
gets(filename);
if((fp=fopen(filename,"rb"))==NULL)
{
printf("Δεν θα μπορούσε να ανοίξει το εφεδρικό αρχείο, να πιέσει οποιοδήποτε πλήκτρο στην έξοδο...");
getch();
exit(1);
}
/* Τα στοιχεία MBR πρέπει να είναι ακριβών 512 ψηφιολέξεων*/
while(count<512)
{
fscanf(fp,"%c",&dbuf[count]);
count++;
}
fclose(fp);
printf("Προσπάθεια να γράψει στο σκληρό δίσκο:\n");
dinfo.drive = 0x80; /* αριθμός κίνησης για τον πρώτο σκληρό δίσκο */
dinfo.head = 0; /* επικεφαλής αριθμός δίσκων */
dinfo.track = 0; /*αριθμός διαδρομής*/
dinfo.sector = 1; /* αριθμός τομέα */
dinfo.nsectors = 1; /* αρίθμηση τομέα*/
dinfo.buffer = dbuf; /* απομονωτής στοιχείων */
result = _bios_disk(_DISK_WRITE, &dinfo);
if ((result & 0xff00) == 0)
{
printf("Αποκατάσταση του στηρίγματος MBR στον τομέα των δίσκων: επιτυχής.\n");
}
else
printf("Μην μπορέστε να γράψετε σε σκληρό δίσκο, θέση =
0x%02x\n", result);
return 0;
}
|