#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, "", 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; }