Σχόλια στην κωδικοποίηση:
Η λειτουργία Display_Information είναι να διαβαστούν οι πληροφορίες αρχείων και καταλόγου και από τον κατάλογο ρίζας. Στη δομή διαβάζουμε τις πληροφορίες 32 ψηφιολέξεων για κάθε αρχείο ή τον κατάλογο με root[32 ].
Οι ανυπόγραφες σειρές name[8 ] και ext[3 ακέραιων αριθμών ] είναι για το αρχείο ή το όνομα καταλόγου για το DOS με (οκτώ σημείο τρία) το σχήμα 8,3. Ομοίως μια ψηφιολέξη είναι για ιδιότητες και δύο ψηφιολέξεις για το αρχικό μακροχρόνιο ανυπόγραφο INT μέγεθος συστάδων είναι να αποθηκεύσουν το μέγεθος του αρχείου τεσσάρων ψηφιολέξεων.
Η _ λειτουργία bios_disk διαβάζει τον τομέα, διευκρινισμένος από τη δομή το finfo και η θέση της λειτουργίας αποθηκεύονται στο αποτέλεσμα.
Από τις κάθε πληροφορίες 512 ψηφιολέξεων που διαβάζονται από τη _ λειτουργία bios_disk, μέχρι τις άκρες περιοχής καταλόγου ρίζας, συλλέγουμε τις πληροφορίες των αρχείων και των καταλόγων που αποθηκεύονται στο δίσκο και τους επιδεικνύουμε στην οθόνη.
Το file_no ακέραιων αριθμών είναι καταστήματα ο αριθμός του αρχείου ή του καταλόγου στον κατάλογο, που αρχίζει από 0, Γενικά το μέγεθος του καταλόγου ρίζας είναι 14 τομέων και ο κατάλογος ρίζας αρχίζει γενικά από τον κύλινδρο = 0, κεφάλι = 0 και τομέας = 2 σε περίπτωση 1.44MB και 3½ δισκέτα.
Εάν ο χρήστης δίνει το χαρακτήρα ` μ "ή ` μ" ως εισαγωγή, οι πληροφορίες του επόμενου τομέα επιδεικνύονται εάν η επιλογή από το χρήστη είναι ` ρ "ή ` ρ" που οι λειτουργίες αποκατάστασης καλούνται. Η κωδικοποίηση της λειτουργίας ανακτεί () έχει δοθεί κατωτέρω:
/* Λειτουργία για να αρχίσει την αποκατάσταση για το διευκρινισμένο αρχείο*/
void recover(unsigned int *root,unsigned int len)
{
void clear_the_line(unsigned int r); /* Λειτουργία για να καθαρίσει μια σειρά στην οθόνη */
/*Λειτουργία για να ενσωματώσει το διευκρινισμένο αρχείο */
void integrate(long unsigned int,unsigned int,
unsigned int,unsigned int);
unsigned int file_no,i;
char ch;
unsigned int *loc;
unsigned int cylinder,head,sector;
unsigned int start;
long unsigned int size;
clear_the_line(21); /* Καθαρίστε τη σειρά αριθμός 21 */
clear_the_line(22); /* Καθαρίστε τη σειρά αριθμός 22*/
clear_the_line(23); /* Καθαρίστε τη σειρά αριθμός 23 */
clear_the_line(24); /* Καθαρίστε τη σειρά αριθμός 24 */
gotoxy(10,21);
cprintf("Εισάγετε FNO. από το αρχείο θέλετε να ανακτήσετε");
scanf("%u",&file_no); /* Πάρτε το αρχείο αριθ. για να ανακτηθείτε */
loc=(root+(len*file_no/2));
|