Annotation of embedaddon/sqlite3/tool/diffdb.c, revision 1.1.1.1

1.1       misho       1: /*
                      2: ** A utility for printing the differences between two SQLite database files.
                      3: */
                      4: #include <stdio.h>
                      5: #include <ctype.h>
                      6: #include <sys/types.h>
                      7: #include <sys/stat.h>
                      8: #include <fcntl.h>
                      9: #include <unistd.h>
                     10: #include <stdlib.h>
                     11: 
                     12: 
                     13: #define PAGESIZE 1024
                     14: static int db1 = -1;
                     15: static int db2 = -1;
                     16: 
                     17: int main(int argc, char **argv){
                     18:   int iPg;
                     19:   unsigned char a1[PAGESIZE], a2[PAGESIZE];
                     20:   if( argc!=3 ){
                     21:     fprintf(stderr,"Usage: %s FILENAME FILENAME\n", argv[0]);
                     22:     exit(1);
                     23:   }
                     24:   db1 = open(argv[1], O_RDONLY);
                     25:   if( db1<0 ){
                     26:     fprintf(stderr,"%s: can't open %s\n", argv[0], argv[1]);
                     27:     exit(1);
                     28:   }
                     29:   db2 = open(argv[2], O_RDONLY);
                     30:   if( db2<0 ){
                     31:     fprintf(stderr,"%s: can't open %s\n", argv[0], argv[2]);
                     32:     exit(1);
                     33:   }
                     34:   iPg = 1;
                     35:   while( read(db1, a1, PAGESIZE)==PAGESIZE && read(db2,a2,PAGESIZE)==PAGESIZE ){
                     36:     if( memcmp(a1,a2,PAGESIZE) ){
                     37:       printf("Page %d\n", iPg);
                     38:     }
                     39:     iPg++;
                     40:   }
                     41:   printf("%d pages checked\n", iPg-1);
                     42:   close(db1);
                     43:   close(db2);
                     44: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>