Comentários no coding:
A função Display_Information é ler a informação da lima e do diretório e do diretório de raiz. Na estrutura nós estamos lendo a informação de 32 bytes para cada lima ou o diretório com raiz [32].
O nome das disposições do inteiro não assinado [8] e o ext [3] são para o nome da lima ou de diretório para o DOS (oito pontilham três) no formato 8.3. Similarmente um byte é para o atributo e os dois bytes para começar o conjunto. tamanho interno não assinado longo; é armazenar o tamanho da lima de quatro bytes.
A função do _bios_disk lê o setor, especificado pelo finfo da estrutura e o status da operação é armazenado no resultado.
De cada informação de 512 bytes ler pela função do _bios_disk, até as extremidades da área do diretório de raiz, nós coletamos a informação das limas e dos diretórios armazenados no disco e indicamo-los na tela.
O file_no do inteiro é lojas o número da lima ou do diretório na lista, partindo de 0. Geralmente o tamanho do diretório de raiz é de 14 setores e o diretório de raiz parte geralmente do cilindro =0, da cabeça = 0 e do setor =2 em caso de 1.44MB e do disco flexível de 3 ½.
Se o usuário der ao caráter o `M' ou o `m' como a entrada, a informação do setor seguinte está indicada se a escolha pelo usuário for o `R' ou o `r' as funções da recuperação estiver chamado. O coding da função recupera () foi dado abaixo:
/* Função para começar a recuperação para a lima especificada */
void recover(unsigned int *root,unsigned int len)
{
void clear_the_line(unsigned int r); /* Função para cancelar uma fileira na tela*/
/* Função para integrar a lima especificada */
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); /* Cancelar a fileira número 21 */
clear_the_line(22); /* Cancelar a fileira número 22 */
clear_the_line(23); /* Cancelar a fileira número 23 */
clear_the_line(24); /* Cancelar a fileira número 24 */
gotoxy(10,21);
cprintf("Incorporar FNO. da lima você quer recuperar");
scanf("%u",&file_no); /* Começar a lima não ser recuperado*/
loc=(root+(len*file_no/2));
|