xref: /linux/tools/lib/vsprintf.c (revision d0761e37fe3fed7810ed8d6e130b79359f0c3e13)
1*d0761e37SArnaldo Carvalho de Melo #include <sys/types.h>
2*d0761e37SArnaldo Carvalho de Melo #include <linux/kernel.h>
3*d0761e37SArnaldo Carvalho de Melo #include <stdio.h>
4*d0761e37SArnaldo Carvalho de Melo 
5*d0761e37SArnaldo Carvalho de Melo int vscnprintf(char *buf, size_t size, const char *fmt, va_list args)
6*d0761e37SArnaldo Carvalho de Melo {
7*d0761e37SArnaldo Carvalho de Melo        int i = vsnprintf(buf, size, fmt, args);
8*d0761e37SArnaldo Carvalho de Melo        ssize_t ssize = size;
9*d0761e37SArnaldo Carvalho de Melo 
10*d0761e37SArnaldo Carvalho de Melo        return (i >= ssize) ? (ssize - 1) : i;
11*d0761e37SArnaldo Carvalho de Melo }
12*d0761e37SArnaldo Carvalho de Melo 
13*d0761e37SArnaldo Carvalho de Melo int scnprintf(char * buf, size_t size, const char * fmt, ...)
14*d0761e37SArnaldo Carvalho de Melo {
15*d0761e37SArnaldo Carvalho de Melo        ssize_t ssize = size;
16*d0761e37SArnaldo Carvalho de Melo        va_list args;
17*d0761e37SArnaldo Carvalho de Melo        int i;
18*d0761e37SArnaldo Carvalho de Melo 
19*d0761e37SArnaldo Carvalho de Melo        va_start(args, fmt);
20*d0761e37SArnaldo Carvalho de Melo        i = vsnprintf(buf, size, fmt, args);
21*d0761e37SArnaldo Carvalho de Melo        va_end(args);
22*d0761e37SArnaldo Carvalho de Melo 
23*d0761e37SArnaldo Carvalho de Melo        return (i >= ssize) ? (ssize - 1) : i;
24*d0761e37SArnaldo Carvalho de Melo }
25