1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#include "bufferq.h"
int main(int argc, char *argv[]) {
bufferq_t q;
bufferq_init(&q, 1, 1);
bufferq_push(&q, 0, "{AAAAAAAA}", 10, 0, SA_SEEK_RELATIVE);
bufferq_push(&q, 0, "<BBBBBBBB>", 10, 5, SA_SEEK_RELATIVE);
bufferq_push(&q, 0, "[CCCC]", 6, -18, SA_SEEK_RELATIVE);
bufferq_push(&q, 0, "(DDDD)", 6, -3, SA_SEEK_ABSOLUTE);
bufferq_push(&q, 0, "XXX", 3, 10, SA_SEEK_RELATIVE_END);
bufferq_push(&q, 0, "YYYYY", 5, -4, SA_SEEK_RELATIVE);
for (;;) {
void *b[1];
size_t size;
bufferq_get(&q, b, &size);
if (size == 0)
break;
printf("Got %u bytes: ", size);
if (b[0])
fwrite(b[0], size, 1, stdout);
else
printf("empty");
printf("\n");
bufferq_drop(&q, size);
}
bufferq_done(&q);
return 0;
}
|