Date: Wed, 12 Jul 2000 19:08:51 -0400 From: "Thomas M. Sommers" <tms2@mail.ptd.net> To: Dag-Erling Smorgrav <des@flood.ping.uio.no>, Mike Pritchard <mpp@mppsystems.com>, Alfred Perlstein <bright@wintelcom.net>, arch@FreeBSD.ORG Subject: Re: kernel printf %i? Message-ID: <396CFA83.BCB82874@mail.ptd.net> References: <5lzonpbc53.fsf@assaris.sics.se> <57067.963303670@axl.ops.uunet.co.za> <20000711013227.P25571@fw.wintelcom.net> <20000711041415.A16480@mppsystems.com> <xzpsntfg623.fsf@flood.ping.uio.no> <396CEA70.2C7A69B3@mail.ptd.net>
next in thread | previous in thread | raw e-mail | index | archive | help
"Thomas M. Sommers" wrote: > > Dag-Erling Smorgrav wrote: > > > > Speaking of printf(), there are two things I'd like to see added: > > > > - in libc, a *dprintf() family similar to *fprintf() except that they > > write to a file descriptor instead of a FILE *. > > How about something like this: > <bad code snipped> Or better yet, this: #include <errno.h> #include <stdarg.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> int dprintf(int fd, const char *format, ...) { char *buf; int err = -1; int len; va_list args; va_start(args, format); len = vasprintf(&buf, format, args); va_end(args); if ( len != -1 ) { err = write(fd, buf, len); free(buf); } else { errno = ENOMEM; } return err; } Thanks to Steve Kargl <sgk@troutmask.apl.washington.edu> for pointing out my error. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?396CFA83.BCB82874>