Portál AbcLinuxu, 15. listopadu 2025 01:33
)
...
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <stdio.h>
#define MAXSIZE 16*1024*1024L
int
main(int argc, char *argv[])
{
unsigned int seed;
char *buf;
FILE *fh;
int size;
if (argc < 2 || !argv[1])
return 1;
fh = fopen("/dev/urandom", "rb");
fread(&seed, sizeof(unsigned int), 1, fh);
fclose(fh);
srand(seed);
buf = (unsigned char*)malloc(MAXSIZE);
while (1) {
fh = fopen(argv[1], "r+b");
if (!fh)
fh = fopen(argv[1], "wb");
if (!fh)
return 1;
fseek(fh, 0, SEEK_SET);
size = rand()%MAXSIZE;
memset(buf, rand()&0xff, size);
ftruncate(fileno(fh), size);
fwrite(buf, 1, size, fh);
fclose(fh);
usleep(rand()%1000000);
usleep(rand()%1000000);
}
}
Spusť to s argumentem jméno souboru, pak si na ten soubor dej F3 v mc a drž page down...
Poučení: [téměř] žádný program nepočítá s tím, že se mu soubor při čtení průběžně mění. Vytažení CD-ROM s tím souborem z mechaniky je extrémním příkladem takové změny...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.