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