Om het gespecificeerde dossier terug te krijgen, berekenen de functies () en integreren () worden geroepen binnen de functie. De codage van de functie berekent () hieronder is gegeven:
/* Functie om CHS Geomatry voor de Terugwinning te berekenen */
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;
}
/// Toon CHS van het Terug te krijgen Dossier \\\
gotoxy(10,23);
cprintf("Cylinder = %u, Head = %u, Sector = %u",
*cylinder,*head,*sector);
}
Commentaren op codage:
De functie berekent () de de Cilinder, het Hoofd en informatie van de Sector voor het terug te krijgen dossier moet berekenen. Na berekening wordt de Cilinder, de aantallen van het Hoofd en van de Sector getoond op het scherm.
De codage voor de functie integreert () is gegeven hieronder:
/* Integreer Dossier en sla het Teruggekregen Dossier aan de Gespecificeerde naam van de Weg en van het Dossier op */
void integrate(long unsigned int size,
unsigned int cylinder,
unsigned int head,
unsigned int sector)
{
void clear_the_line(unsigned int);
/*Functie om de Sector voor Fouten te verifiëren*/
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;
|