Pour récupérer le dossier indiqué, les fonctions calculent () et intègrent () s'appellent dans la fonction. Le codage de la fonction calculent () a été donné ci-dessous :
/* Fonctionner pour calculer le CHS Geomatry pour le rétablissement */
void calculate(unsigned int start,unsigned int *cylinder,
unsigned int *head,unsigned int *sector)
{
unsigned int temp;
*cylinder=0;
*head=1;
*sector=14;
if(start<5)
*sector=14+start;
else
{
temp= (start-4)/18;
if(temp>0)
{
if(temp%2==0)
*head=0;
else
*head=1;
*cylinder+=1+temp/2;
}
else
{
*head=0;
*cylinder=1;
}
*sector=(start-4)%18;
}
/// Montrer Le CHS du dossier à récupérer \\\
gotoxy(10,23);
cprintf("Cylinder = %u, Head = %u, Sector = %u",
*cylinder,*head,*sector);
}
Commentaires sur le codage :
La fonction calculent () est de calculer l'information de cylindre, principale et de secteur pour que le dossier soit récupéré. Après calcul les nombres de cylindre, principaux et de secteur sont affichés sur l'écran.
Le codage pour la fonction intègrent () a été donné ci-dessous :
/* Intégrer le dossier et sauver le dossier récupéré au chemin indiqué et au nom de fichier*/
void integrate(long unsigned int size,
unsigned int cylinder,
unsigned int head,
unsigned int sector)
{
void clear_the_line(unsigned int);
/*Fonction pour vérifier le secteur pour des erreurs*/
int verify_the_sector(unsigned int, unsigned int,
unsigned int);
int status;
char buf[512],*Filename_with_path;
struct diskinfo_t dinfo;
unsigned int result;
FILE *fp;
unsigned int left,i;
unsigned int sec;
|