#include int query(int (*callback)(char *, size_t *)) { char buffer[1024]; size_t size = sizeof buffer; if (callback(buffer, &size) == 0) { puts("query: callback failed"); } else { char *ptr = buffer; while (size-- > 0) putchar (*ptr++); putchar('\n'); } }