Changeset 12099


Ignore:
Timestamp:
06/17/2009 05:20:18 PM (15 months ago)
Author:
dstn
Message:

add pad-file

Location:
trunk/src/astrometry/util
Files:
1 added
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/astrometry/util/Makefile

    r11537 r12099  
    6464PYTHON_LIBS := _sip.so _healpix.so 
    6565 
    66 PROGS := an-fitstopnm downsample-fits 
     66PROGS := an-fitstopnm downsample-fits pad-file 
    6767 
    6868all: $(ANUTILS_LIB) $(ANFILES_LIB) $(PYTHON_LIBS) $(PROGS) 
     
    123123_healpix.so: healpix.o starutil.o mathutil.o errors.o bl.o log.o 
    124124        $(CC) $(SHAREDLIBFLAGS) -o $@ $^ 
     125 
     126pad-file: pad-file.o $(ANUTILS_LIB) 
    125127 
    126128an-fitstopnm: an-fitstopnm.o $(ANUTILS_LIB) $(QFITS_LIB) 
  • trunk/src/astrometry/util/ioutils.c

    r10420 r12099  
    4343 
    4444uint32_t ENDIAN_DETECTOR = 0x01020304; 
     45 
     46int pad_fid(FILE* fid, size_t len, char pad) { 
     47        off_t offset; 
     48        size_t npad; 
     49        size_t i; 
     50        // pad with zeros up to a multiple of 2880 bytes. 
     51        offset = ftello(fid); 
     52        npad = len - offset; 
     53        for (i=0; i<npad; i++) 
     54                if (fwrite(&pad, 1, 1, fid) != 1) { 
     55                        SYSERROR("Failed to pad file"); 
     56                        return -1; 
     57                } 
     58        return 0; 
     59} 
     60 
     61int pad_file(char* filename, size_t len, char pad) { 
     62        int rtn; 
     63        FILE* fid = fopen(filename, "ab"); 
     64        if (!fid) { 
     65                SYSERROR("Failed to open file \"%s\" for padding", filename); 
     66                return -1; 
     67        } 
     68        rtn = pad_file(fid, len, pad); 
     69        if (!rtn && fclose(fid)) { 
     70                SYSERROR("Failed to close file \"%s\" after padding it", filename); 
     71                return -1; 
     72        } 
     73        return rtn; 
     74} 
    4575 
    4676Malloc 
  • trunk/src/astrometry/util/ioutils.h

    r10420 r12099  
    2929 
    3030extern uint32_t ENDIAN_DETECTOR; 
     31 
     32int pad_fid(FILE* fid, size_t len, char pad); 
     33int pad_file(char* filename, size_t len, char pad); 
    3134 
    3235/* 
  • trunk/src/astrometry/util/svn.c

    r12038 r12099  
    186186// 
    187187// 
     188// 
     189// 
Note: See TracChangeset for help on using the changeset viewer.