summaryrefslogtreecommitdiff
path: root/source3/lib/slprintf.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/lib/slprintf.c')
-rw-r--r--source3/lib/slprintf.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/source3/lib/slprintf.c b/source3/lib/slprintf.c
index a755bf1bc5..ed7113c865 100644
--- a/source3/lib/slprintf.c
+++ b/source3/lib/slprintf.c
@@ -64,3 +64,33 @@ va_dcl
va_end(ap);
return ret;
}
+
+ /* this is rather line fprintf, except that it works on a file descriptor
+ and is limited to one pstring of output */
+#ifdef HAVE_STDARG_H
+ int fdprintf(int fd, char *format, ...)
+{
+#else
+ int fdprintf(va_alist)
+va_dcl
+{
+ int fd;
+ char *format;
+#endif
+ va_list ap;
+ int ret;
+ pstring str;
+
+#ifdef HAVE_STDARG_H
+ va_start(ap, format);
+#else
+ va_start(ap);
+ fd = va_arg(ap,int);
+ format = va_arg(ap,char *);
+#endif
+ str[0] = 0;
+
+ ret = vslprintf(str,sizeof(str),format,ap);
+ va_end(ap);
+ return write(fd, str, strlen(str));
+}