comparison cdbget.c @ 13:0a35d8de4296

support profiling with gprof
author Henry S. Thompson <ht@inf.ed.ac.uk>
date Fri, 07 Feb 2025 14:43:27 +0000
parents 3bfef1f22a97
children 4cc3224ebf41
comparison
equal deleted inserted replaced
12:0e21568dec72 13:0a35d8de4296
2 #include "scan.h" 2 #include "scan.h"
3 #include "str.h" 3 #include "str.h"
4 #include "buffer.h" 4 #include "buffer.h"
5 #include "strerr.h" 5 #include "strerr.h"
6 #include "cdb.h" 6 #include "cdb.h"
7 #include <stdlib.h>
7 8
8 #define FATAL "cdbget: fatal: " 9 #define FATAL "cdbget: fatal: "
9 10
10 void die_read(void) 11 void die_read(void)
11 { 12 {
44 cdb_findstart(&c); 45 cdb_findstart(&c);
45 46
46 for (;;) { 47 for (;;) {
47 r = cdb_findnext(&c,key,str_len(key)); 48 r = cdb_findnext(&c,key,str_len(key));
48 if (r == -1) die_read(); 49 if (r == -1) die_read();
49 if (!r) _exit(100); 50 if (!r) exit(100);
50 if (!u) break; 51 if (!u) break;
51 --u; 52 --u;
52 } 53 }
53 54
54 pos = cdb_datapos(&c); 55 pos = cdb_datapos(&c);
61 if (buffer_put(buffer_1small,buf,r) == -1) die_write(); 62 if (buffer_put(buffer_1small,buf,r) == -1) die_write();
62 pos += r; 63 pos += r;
63 len -= r; 64 len -= r;
64 } 65 }
65 if (buffer_flush(buffer_1small) == -1) die_write(); 66 if (buffer_flush(buffer_1small) == -1) die_write();
66 _exit(0); 67 exit(0);
67 } 68 }