/* ** Extract a range of bytes from a file. ** ** Usage: ** ** extract FILENAME OFFSET AMOUNT ** ** The bytes are written to standard output. */ #include #include int main(int argc, char **argv){ FILE *f; char *zBuf; int ofst; int n; size_t got; if( argc!=4 ){ fprintf(stderr, "Usage: %s FILENAME OFFSET AMOUNT\n", *argv); return 1; } f = fopen(argv[1], "rb"); if( f==0 ){ fprintf(stderr, "cannot open \"%s\"\n", argv[1]); return 1; } ofst = atoi(argv[2]); n = atoi(argv[3]); zBuf = malloc( n ); if( zBuf==0 ){ fprintf(stderr, "out of memory\n"); return 1; } fseek(f, ofst, SEEK_SET); got = fread(zBuf, 1, n, f); fclose(f); if( got