Comentarios sobre la codificación del programa:
En la codificación del programa, cada paso está igual que en programa anterior excepto el almacenador intermediario dbuf2 [512] de los datos, que estamos utilizando manejar el error generado por el mal sector durante la operación de lectura del disco y mantener el tamaño del archivo de la imagen.
Haciendo esto, estamos llenando el espacio de la información, que no pudimos leer en el mal sector y ahora estamos escribiendo la pseudo información de 512 octetos de modo que poder mantener la exactitud de la imagen del disco.
Pegar los datos del archivo a la superficie física del disco blando fresco:
En este paso, pegamos los datos almacenados en el archivo por el programa anterior, a la superficie física del disco blando fresco, sector por el sector de la misma forma por cuál lo copiamos al archivo.
El programa procede con los pasos principales siguientes:
- Abrir el archivo en el cual almacenamos los datos superficiales del disco blando ilegible temporalmente.
- Inicializar el sistema de disco correctamente por la función de reajuste 00H de 13H INTERNO.
- Escribir la información en los sectores del disco blando fresco del archivo.
- Exhibir el estado de escribir simultáneamente al hallazgo o evitar la ocurrencia de errores.
El código de fuente del programa se ha dado abajo. Examinemos cómo trabaja:
/* Programa para escribir los datos en los sectores de la superficie del disco blando fresco del archivo, creada por el programa anterior */
#include <bios.h>
#include <stdio.h>
void main(void)
{
int head,track;
union REGS regs;
int result,i,sector;
int count =0;
char filename[80];
struct diskinfo_t dinfo;
static char dbuf[512];
FILE *fp;
clrscr();
printf("\n Incorporar el nombre del archivo con la trayectoria para almacenar los datos temporalmente\n");
gets(filename);
if((fp=fopen(filename,"rb"))==NULL)
{
printf("No podía crear el archivo, no presionan ninguna llave PARA SALIR");
getch();
exit(1);
}
|