#include <stdlib.h> #include <string.h> #include "iobuf.h" unsigned iobuf_bufsize = 4096; int iobuf_init(iobuf* io, int fd, unsigned bufsize, char* buffer, unsigned flags) { memset(io, 0, sizeof *io); if (!bufsize) bufsize = iobuf_bufsize; if (!buffer) { if ((buffer = malloc(bufsize)) == 0) return 0; flags |= IOBUF_NEEDSFREE; } io->fd = fd; io->buffer = buffer; io->bufsize = bufsize; io->flags = flags; return 1; }