#include "mystdlib.h" #include int main( int argc, char **argv ) { MAP file = NULL; unsigned long i = 0; if( !(file = map_file( argv[1], 0 ) ) ) exit( 1 ); if( file->size & 15 ) puts( "WARNING: File size not multiple of 16" ); while( i < file->size && *(unsigned long*)(file->addr+i) < 2911418625UL ) i+= 16; if( i < file->size) { if( i ) { off_t newsize = (off_t)i; printf( "%s reduced by %8d bytes. (Offending offset: %09lu)\n", argv[1], (unsigned long)(file->size - i ), *(unsigned long*)(file->addr+i) ); ftruncate( file->fh, newsize ); } else { printf( "%s removed. (Offending offset: %09lu)\n", argv[1], *(unsigned long*)(file->addr+i) ); unlink( argv[1] ); } } unmap_file( &file ); return 0; }