int owl_os_printf(const char *fmt, ...) { char *str = NULL; va_list args; int len; char *iter; va_start(args, fmt); if ((str = malloc(160)) == NULL) return -1; if ((len = vsniprintf(str, 160, fmt, args)) < 0) { free(str); return -1; } iter = str; while (*iter) owl_putc(*iter++); free(str); return len; }
int owl_printf(const char *fmt, ...) { char *str = NULL; va_list args; int len; char *iter; va_start(args, fmt); if ((str = malloc(MAX_PRINTF_LEN)) == NULL) return OWL_ERR_MEM; if ((len = vsniprintf(str, MAX_PRINTF_LEN, fmt, args)) < 0) { free(str); return OWL_ERR_MEM; } iter = str; while (*iter) owl_putc(*iter++); free(str); return len; }