/* 一時ファイルを自動的に削除する機能 */
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;
}
プログラムの論理そしてコーディングのコメント:
このプログラムで基本的に私達は次の2つのディスクの割振りを解除されたスペースを拭くためにステップに従う:
- 一時的なデータファイルを自動的に作成しなさい: 最初に私達はそれらの固有の名前そしてあるデータを持っていることとディスクボリュームがこれらの一時的なデータファイルと完全になるまで一時ファイルを作成する。 これをすることによって、論理ドライブのすべての割振りを解除されたデータ域は一時ファイルのデータによって占められ、すべての割振りを解除されたデータは重ね書きされる。
これをするために、私は平均が、一時ファイルの最初の4つの特性TTPTであり、ファイルの延長によってが.PTTであるTTPTxxxx.PTTのフォーマットの一時ファイルの名前を選んだ。 一時ファイルを提供することを独特なファイル名そうする。
しかし私はおよそ11,718セクターデータと同等の単一の一時ファイルの最高のサイズを置いたあなたがあなたに従ってそれを定義できる。 私は一時ファイルのデータを満たすために間隔文字を「」 (ASCII文字32)選んだ。 どんなに任意特性はまたスペースの代りに使用されるかもしれない。
- すべての一時ファイルを取除きなさい: 論理ドライブは一時ファイルと完全なとき、すべての割振りを解除されたデータ域が今重ね書きされることを示す。 今プログラムによって作成されるすべての一時ファイルは自動的に取除かれる。 そしてこうして拭かれた割振りを解除されたスペースは達成される。
プログラムのコーディングでは、文字配列のファイル名はファイル異なった名前と一時ファイルを、自動的に発生させるために名前を貯える。
機能write_to_temp (ファイル名); 40,000バイトのデータバッファのdbufの助けで11,718セクター(緩衝の特定のグループの執筆の10,000のセクターが回出て来ないので)同等のデータまで一時ファイルを満たす。 50時のデータバッファは執筆のスピードをあげるために一度に書かれている。
一時ファイルはディスクボリュームが完全になり、ファイルが作成の間違い起こるまで作成される。 remove_temp_file機能は()プログラムによって作成されるすべての一時ファイルを取除く。
このようにすべての割振りを解除されたスペースはディスクボリュームのデータに害を与えないで一掃される。
|