#include #include #include //#include #include int scnprintf(char *buf, unsigned long size, const char *fmt, ...) { va_list ap; int ret; if (!size) { return 0; } va_start(ap, fmt); ret = vsnprintf(buf, size, fmt, ap); va_end(ap); if (ret < 0) { return 0; } if ((unsigned long) ret >= size) { return size - 1; } return ret; }