How about cat /dev/random > file ?
unlink(filename)
create(filename)
write(filename, random)
?
Though something that opens the file in append mode then seeks to 0 would probably overwrite the same HDD locations.You can avoid this with the 'conv=notrunc' option of 'dd'[1]. It will overwrite existing blocks instead of truncating (and possibly reallocating):
notrunc Do not truncate the output file. This will preserve
any blocks in the output file not explicitly written by
dd. The notrunc value is not supported for tapes.
[1]:https://developer.apple.com/library/mac/documentation/Darwin... > secrets.txt
the file is truncated, freeing blocks 1-999 (usually block 0 is zero-filled.) If you proceed to write random data it will go to newly-allocated blocks. Then a raw read of the original blocks will expose your secret data.With dd and notrunc, the random data goes to the original blocks, overwriting your secrets.
Are you saying this will not overwrite some of the blocks?