Back to home page

OSCL-LXR

 
 

    


0001 // SPDX-License-Identifier: GPL-2.0
0002 #include <sys/types.h>
0003 #include <linux/kernel.h>
0004 #include <stdio.h>
0005 
0006 int vscnprintf(char *buf, size_t size, const char *fmt, va_list args)
0007 {
0008        int i = vsnprintf(buf, size, fmt, args);
0009        ssize_t ssize = size;
0010 
0011        return (i >= ssize) ? (ssize - 1) : i;
0012 }
0013 
0014 int scnprintf(char * buf, size_t size, const char * fmt, ...)
0015 {
0016        ssize_t ssize = size;
0017        va_list args;
0018        int i;
0019 
0020        va_start(args, fmt);
0021        i = vsnprintf(buf, size, fmt, args);
0022        va_end(args);
0023 
0024        return (i >= ssize) ? (ssize - 1) : i;
0025 }
0026 
0027 int scnprintf_pad(char * buf, size_t size, const char * fmt, ...)
0028 {
0029     ssize_t ssize = size;
0030     va_list args;
0031     int i;
0032 
0033     va_start(args, fmt);
0034     i = vscnprintf(buf, size, fmt, args);
0035     va_end(args);
0036 
0037     if (i < (int) size) {
0038         for (; i < (int) size; i++)
0039             buf[i] = ' ';
0040         buf[i] = 0x0;
0041     }
0042 
0043     return (i >= ssize) ? (ssize - 1) : i;
0044 }