linux/tools/lib/vsprintf.c
<<
>>
Prefs
   1// SPDX-License-Identifier: GPL-2.0
   2#include <sys/types.h>
   3#include <linux/kernel.h>
   4#include <stdio.h>
   5
   6int 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
  14int 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
  27int 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