#include "mrilib.h"
#define ERR (fprintf(stderr,"\aerror\n"),exit(1))
int main( int argc , char * argv[] )
{
byte *b64 , *bin;
int nb64 , nbin ;
double cpu , clk ;
if( argc < 3 ) ERR ;
if( argv[1][0] == 'd' ){
clk = COX_clock_time() ;
b64 = AFNI_suck_file( argv[2] ) ;
clk = COX_clock_time() - clk ;
if( b64 == NULL ) ERR ;
nb64 = strlen(b64) ; if( nb64 < 4 ) ERR ;
cpu = COX_cpu_time() ;
B64_to_binary( nb64,b64 , &nbin,&bin ) ;
cpu = COX_cpu_time() - cpu ;
fprintf(stderr,"nbin=%d nb64=%d cpu=%g I/O=%g\n",nbin,nb64,cpu,clk) ;
if( nbin == 0 ) ERR ;
fwrite( bin,1,nbin,stdout ) ; exit(0) ;
} else if( argv[1][0] == 'e' ){
B64_set_crlf(1) ;
B64_set_linelen( 72 ) ;
clk = COX_clock_time() ;
bin = AFNI_suck_file( argv[2] ) ;
clk = COX_clock_time() - clk ;
if( bin == NULL ) ERR ;
nbin = THD_filesize( argv[2] ) ;
if( nbin <= 0 ) ERR ;
cpu = COX_cpu_time() ;
B64_to_base64( nbin,bin , &nb64,&b64 ) ;
cpu = COX_cpu_time() - cpu ;
fprintf(stderr,"nb64=%d nbin=%d cpu=%g I/O=%g\n",nb64,nbin,cpu,clk) ;
if( nb64 == 0 ) ERR ;
fwrite( b64,1,nb64,stdout ) ; exit(0) ;
} else {
ERR ;
}
}
syntax highlighted by Code2HTML, v. 0.9.1