int substdio_put(&s,from,len);
int substdio_puts(&s,from);
int substdio_bput(&s,from,len);
int substdio_bputs(&s,from);
int substdio_flush(&s);
int substdio_putflush(&s,from,len);
int substdio_putsflush(&s,from);
substdio s;
char *from;
int len;
substdio_bput has the same function as substdio_put. The difference is how the buffer is flushed when there isn't enough room for len characters: substdio_put flushes the buffered data before copying the new data, whereas substdio_bput fills the buffer with new data before flushing.
substdio_flush forces all data to be written from the internal buffer. It returns 0 on success, -1 on error.
substdio_putflush is similar to substdio_put followed by substdio_flush, but it avoids all internal copies.
substdio_puts, substdio_bputs, and substdio_putsflush are the same as substdio_put, substdio_bput, and substdio_putflush except that from must be a 0-terminated string of characters. The string, not including the 0, is written.
The SUBSTDIO_OUTSIZE macro is defined as a reasonably large output buffer size for substdio_fdbuf.