/* Funzione per cancellare automaticamente le lime provvisorie */
remove_temp_file()
{
int i=0;
for(i=0;i<=file_num;i++)
{
strcpy(filename,"TTPT");
itoa(i,temp,10);
strcat(filename,temp);
strcat(filename,file_extension);
remove(filename);
}
exit(1);
return 0;
}
Osservazioni su logica e sulla codificazione del programma:
In questo programma seguiamo basicamente i seguenti due punti per pulire lo spazio non stanziato del disc:
- Generare automaticamente gli schedari di dati provvisori: In primo luogo generiamo le lime provvisorie con i nomi unici ed avere alcuni dati in loro fino a che il volume di disc non sia pieno con questi schedari di dati provvisori. Facendo questo, tutta la zona di dati non stanziata dell'azionamento logico è occupata dai dati delle lime provvisorie e tutti i dati non stanziati sono scritti sopra.
Per fare questo, ho scelto i nomi delle lime provvisorie nella disposizione di TTPTxxxx.PTT, che i mezzi, i primi quattro caratteri delle lime provvisorie sono TTPT e l'estensione delle lime è .PTT. È fatta così per fornire le lime provvisorie i nomi di schedario unici.
Ho regolato il formato massimo di singola lima provvisoria, equivalente a circa 11.718 dati dei settori tuttavia che potete definirli secondo voi. Ho scelto il carattere bianco “„ (carattere di ASCII 32) per riempire i dati in lime provvisorie. I caratteri per quanto casuali possono anche essere usati anziché spazio.
- Rimuovere tutte le lime provvisorie: Quando l'azionamento logico è pieno con le lime provvisorie, indica che tutta la zona di dati non stanziata ora è scritta sopra. Ora tutte le lime provvisorie generate dal programma sono rimosse automaticamente. E lo spazio non stanziato così eliminato è realizzato.
Nella codificazione del programma, il nome di schedario di allineamento di carattere immagazzina il nome di archivio per generare automaticamente le lime provvisorie, con differenti nomi.
Il write_to_temp di funzione (nome di schedario); riempie la lima provvisoria fino a 11.718 dati equivalenti dei settori (perché non ci è caso di 10.000 settori nella scrittura specificata del gruppo dell'amplificatore) di aiuto di un dbuf dell'amplificatore di dati di 40.000 byte. un amplificatore di 50 dati di volte è scritto alla volta per accelerare la scrittura. Le lime provvisorie sono generate fino a che il volume di disc non sia pieno ed errore della creazione della lima accada. La funzione remove_temp_file () rimuove tutta la lima provvisoria, generata dal programma. In questo modo tutto lo spazio non stanziato è eliminato senza nuoc i dati del volume di disc.
|