1 #include "mrilib.h"
2 
3 #define ERR (fprintf(stderr,"\aerror\n"),exit(1))
4 
main(int argc,char * argv[])5 int main( int argc , char * argv[] )
6 {
7    byte *b64 , *bin;
8    int  nb64 , nbin ;
9    double cpu , clk ;
10 
11    if( argc < 3 ) ERR ;
12 
13    if( argv[1][0] == 'd' ){
14      clk = COX_clock_time() ;
15      b64 = AFNI_suck_file( argv[2] ) ;
16      clk = COX_clock_time() - clk ;
17      if( b64 == NULL ) ERR ;
18      nb64 = strlen(b64) ; if( nb64 < 4 ) ERR ;
19 
20      cpu = COX_cpu_time() ;
21      B64_to_binary( nb64,b64 , &nbin,&bin ) ;
22      cpu = COX_cpu_time() - cpu ;
23      fprintf(stderr,"nbin=%d nb64=%d cpu=%g I/O=%g\n",nbin,nb64,cpu,clk) ;
24      if( nbin == 0 ) ERR ;
25      fwrite( bin,1,nbin,stdout ) ; exit(0) ;
26    } else if( argv[1][0] == 'e' ){
27       B64_set_crlf(1) ;
28       B64_set_linelen( 72 ) ;
29       clk = COX_clock_time() ;
30       bin = AFNI_suck_file( argv[2] ) ;
31       clk = COX_clock_time() - clk ;
32       if( bin == NULL ) ERR ;
33       nbin = THD_filesize( argv[2] ) ;
34       if( nbin <= 0 ) ERR ;
35       cpu = COX_cpu_time() ;
36       B64_to_base64( nbin,bin , &nb64,&b64 ) ;
37       cpu = COX_cpu_time() - cpu ;
38       fprintf(stderr,"nb64=%d nbin=%d cpu=%g I/O=%g\n",nb64,nbin,cpu,clk) ;
39       if( nb64 == 0 ) ERR ;
40       fwrite( b64,1,nb64,stdout ) ; exit(0) ;
41    } else {
42       ERR ;
43    }
44 }
45