Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
torvalds
GitHub Repository: torvalds/linux
Path: blob/master/tools/lib/vsprintf.c
26285 views
1
// SPDX-License-Identifier: GPL-2.0
2
#include <sys/types.h>
3
#include <linux/kernel.h>
4
#include <stdio.h>
5
6
int vscnprintf(char *buf, size_t size, const char *fmt, va_list args)
7
{
8
int i = vsnprintf(buf, size, fmt, args);
9
ssize_t ssize = size;
10
11
return (i >= ssize) ? (ssize - 1) : i;
12
}
13
14
int scnprintf(char * buf, size_t size, const char * fmt, ...)
15
{
16
ssize_t ssize = size;
17
va_list args;
18
int i;
19
20
va_start(args, fmt);
21
i = vsnprintf(buf, size, fmt, args);
22
va_end(args);
23
24
return (i >= ssize) ? (ssize - 1) : i;
25
}
26
27
int scnprintf_pad(char * buf, size_t size, const char * fmt, ...)
28
{
29
ssize_t ssize = size;
30
va_list args;
31
int i;
32
33
va_start(args, fmt);
34
i = vscnprintf(buf, size, fmt, args);
35
va_end(args);
36
37
if (i < (int) size) {
38
for (; i < (int) size; i++)
39
buf[i] = ' ';
40
buf[i] = 0x0;
41
}
42
43
return (i >= ssize) ? (ssize - 1) : i;
44
}
45
46