mirror of
https://github.com/torvalds/linux.git
synced 2026-01-25 07:47:50 +00:00
tools/nolibc: add dprintf() and vdprintf()
dprintf() and vdprintf() are printf() variants printing directly into a filedescriptor. As FILE in nolibc is based directly on filedescriptors, the implementation is trivial. Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de> Acked-by: Willy Tarreau <w@1wt.eu>
This commit is contained in:
committed by
Thomas Weißschuh
parent
4175b55845
commit
5197b7b87c
@@ -351,6 +351,30 @@ int printf(const char *fmt, ...)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static __attribute__((unused, format(printf, 2, 0)))
|
||||
int vdprintf(int fd, const char *fmt, va_list args)
|
||||
{
|
||||
FILE *stream;
|
||||
|
||||
stream = fdopen(fd, NULL);
|
||||
if (!stream)
|
||||
return -1;
|
||||
/* Technically 'stream' is leaked, but as it's only a wrapper around 'fd' that is fine */
|
||||
return vfprintf(stream, fmt, args);
|
||||
}
|
||||
|
||||
static __attribute__((unused, format(printf, 2, 3)))
|
||||
int dprintf(int fd, const char *fmt, ...)
|
||||
{
|
||||
va_list args;
|
||||
int ret;
|
||||
|
||||
va_start(args, fmt);
|
||||
ret = vdprintf(fd, fmt, args);
|
||||
va_end(args);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static __attribute__((unused))
|
||||
int vsscanf(const char *str, const char *format, va_list args)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user