/* * A simple minded, 5 minute, program to trash all free blocks on a * disk by just writing a file full of garbage until the disk is full. * * This insures that any proprietary data left on the disk after * deleting files is clobbered. Otherwise, disksalv might find * some interesting tidbits... * * To use, just run and wait for the requestor to come up when * the disk is full. Cancel the requestor and the file "junkfile" * will be left, and the disk will be full. Delete the file * to free up the scribbled blocks. * */ #include static char buf[512]; #define FILENAME "junkfile" #define MSG "This block has been subjected to bit rot (better luck next time!)" int main () { register FILE *fp; register int count = 0; if ((fp = fopen (FILENAME, "r")) != NULL) { (void) fprintf (stderr, "%s: file exists already!\n", FILENAME); } else { (void) fclose (fp); if ((fp = fopen (FILENAME, "w")) == NULL) { (void) fprintf (stderr, "%s: can't open for write!\n", FILENAME); } else { (void) strcpy (buf, MSG); while (fwrite (buf, sizeof (buf), 1, fp) == 1) { count++; if ((count % 100) == 0) { (void) printf ("Reached block %d ...\r", count); (void) fflush (stdout); } } (void) printf ("Total of %d blocks written\n", count); (void) fflush (stdout); (void) fclose (fp); } } return (0); }