Czyszczenie dysku Guttmann

0

Witam.
Napisałem programik do czyszczenia dysku algorytmem guttmana.
Móżecie sprawdzić, czy jest napisany poprawnie?

#include <cstdio>
#include <ctime>
#include <cstdlib>

int gut[] = {
    0x555555,
    0xAAAAAA,
    0x924924,
    0x492492,
    0x000000,
    0x111111,
    0x222222,
    0x333333,
    0x444444,
    0x555555,
    0x666666,
    0x777777,
    0x888888,
    0x999999,
    0xAAAAAA,
    0xBBBBBB,
    0xCCCCCC,
    0xDDDDDD,
    0xEEEEEE,
    0xFFFFFF,
    0x924924,
    0x492492,
    0x249249,
    0x6DB6DB,
    0xB6DB6D,
    0xDB6DB6
    };

int main()
{
    const char *sciezka = "/dev/sda";

    FILE *plik = fopen(sciezka, "w");

    if (plik == NULL)
    {
        printf("error");
        return 1;
    }

    srand( (int)time(NULL) );
    for (int i = 0; i < 4; i++)
    {
        printf("Pass %d/4\n", i+1);
        while (ferror(plik) == 0)
            fprintf(plik, "%d", rand());

        perror("Warning: ");

        if (fseek(plik, 0, SEEK_SET))
        {
            perror("Nie można ustawić wskaźnika na początek pliku: ");
            return 1;
        }
    }


    for (int i = 0; i < 27; i++)
    {
        printf("Pass %d/27\n", i+1);
        while (ferror(plik) == 0)
        {
            fputc((char)gut[i], plik);
            fflush(plik);
        }

        perror("Warning: ");

        if (fseek(plik, 0, SEEK_SET))
        {
            perror("Nie można ustawić wskaźnika na początek pliku: ");
            return 1;
        }
    }

    for (int i = 0; i < 4; i++)
    {
        printf("Pass %d/4\n", i+1);
        while (ferror(plik) == 0)
            fprintf(plik, "%d", rand());

        perror("Warning: ");

        if (fseek(plik, 0, SEEK_SET))
        {
            perror("Nie można ustawić wskaźnika na początek pliku: ");
            return 1;
        }
    }


    fclose(plik);
    return 0;
}
0

Może zamiast:

    const char *sciezka = "/dev/sda";

    FILE *plik = fopen(sciezka, "w");

Dać

    const char *sciezka = "/dev/sda";

    FILE *plik = fopen(sciezka, "wb");

1 użytkowników online, w tym zalogowanych: 0, gości: 1