#include #include #include "io.h" int swap4(int b){ //b=(((b & 0xff0000)>> 16)|((b & 0xff)<<16)|(b & 0xff00)); b=(((b & 0xff000000)>> 24)|((b & 0xff0000)>> 8)| ((b & 0xff)<<24) | ((b & 0xff00)<< 8)); return b; } short swap(short b){ b=(((b & 0xff00)>> 8)|((b & 0xff)<<8)); return b; } short swap8(short *b){ short tmp; tmp=b[0]; b[0]=b[1]; b[1]=tmp; return 0; } int test_endian(void){ short int a=0x1000; char *b; b=(char *)&a; if (*(b+1)==0x10) { return 1; } else { return 0 ;} } int main(int argc , char ** argv){ int little_endian=test_endian(); int type; int run; int event; int n,j,nb; int flag; char buf[1000000]; short *p=(short *) buf; int *mode=(int *) &p[2]; char ss[128]; static int size=sizeof(short); int nread; FILE *fp=NULL; if (argc<3){ fprintf(stderr,"%s \n",argv[0]); exit(1); } fp=fopen(argv[1],"r"); if (fp==NULL){ printf("Cannot Open File %s\n",argv[0]); } flag=atoi(argv[2]); printf("IsLittleEndian %d\n", little_endian); printf("size %d\n",size); nread=8; while (!feof(fp)){ fread(buf, size,nread,fp); if (flag && little_endian) for (j=0;j5){ printf("Unknown record %d\n",p[1]); exit(1); } n=p[0]-nread; //printf("Bytes to read %d\n",n); if (n>0){ nb=fread(buf,size,n,fp); if (nb!=n*size){ if (flag && little_endian) for (j=0;j