#include #include "al.h" #include "sio.h" extern sio_module_t sio_module_fd; extern sio_module_t sio_module_buffer; #define e(f) rc = f; printf("%s = %s\n",#f, sio_error(rc)); fflush(stdout); int main(int argc, char *argv[]) { sio_rc_t rc; sio_t *sio; sio_stage_t *sios_fd, *sios_buffer; int fd; char buf[] = "Hello world\n"; size_t actual; size_t buflen = 1000; fd = fileno(stdout); e(sio_create(&sio)); e(sio_create_stage(sio, &sio_module_buffer, &sios_buffer)); e(sio_configure_stage(sio, sios_buffer, "outputsize", &buflen)); e(sio_create_stage(sio, &sio_module_fd, &sios_fd)); e(sio_configure_stage(sio, sios_fd, "fd", &fd)); e(sio_attach(sio, sios_buffer, SIO_MODE_WRITE)); e(sio_attach(sio, sios_fd, SIO_MODE_WRITE)); e(sio_write(sio, buf, sizeof(buf)-1, &actual)); e(sio_push(sio)); e(sio_detach(sio, sios_fd)); e(sio_detach(sio, sios_buffer)); e(sio_destroy_stage(sio, sios_fd)); e(sio_destroy_stage(sio, sios_buffer)); e(sio_destroy(sio)); return 0; }