Ahojte.
Včera som prvý krát skúšal c++. Chcem si spraviť program na bezpečné mazanie dát (/prečistenie disku od vymazaných dát zápisom sekvencie náhodných bitov niekoľko krát za sebou).
Problém je v tom, že neviem poriadne, ako nasimulovať tie náhodné bity.
Vytvoril som si premennú typu char a pridelil jej náhodné číslo medzi 0 a 255. Myslel som si, že to bude fungovať. Lenže som zistil, že keď zapíšem 4 takéto byty, tak súbor má veľkosť 12 bytov (nie vždy, závisí od toho, aké byty sa vytvoria) :O . Tým pádom neviem zistiť, koľko som už zapísal.
Mohol by mi niekto pomôcť so spôsobom, ako vytvoriť náhodný byte o veľkosti 1 byte?
Kód, ktorý doteraz mám (berte do úvahy, že som nikdy v C ani C++ nerobil)
Kód:
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int filesize,i,rndint;
char cr;
cin >> filesize;
FILE * pFile;
pFile = fopen ("myfile.txt","w");
if (pFile!=NULL){
for(i=0;i<filesize;i++){
srand((unsigned)time(0));
cr = random()%255;
fputs((cr+""),pFile);
}
fclose(pFile);
}
}
Na prerobenie tam je toho ešte veľa, napríklad srand treba trošku inak vypočítavať, time nie je zrovna to pravé orechové. Tiež musím vypočítať voľné miesto na disku, teraz ručne zadávam veľkosť takéhoto súboru.