Portál AbcLinuxu, 10. května 2025 06:23
#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.