From owner-freebsd-arch Wed Jul 12 16: 9:21 2000 Delivered-To: freebsd-arch@freebsd.org Received: from mail.ptd.net (mail1.ha-net.ptd.net [207.44.96.65]) by hub.freebsd.org (Postfix) with SMTP id 04ABF37BE42 for ; Wed, 12 Jul 2000 16:09:18 -0700 (PDT) (envelope-from tms2@mail.ptd.net) Received: (qmail 8036 invoked from network); 12 Jul 2000 23:09:25 -0000 Received: from du167.cli.ptd.net (HELO mail.ptd.net) (204.186.33.167) by mail.ptd.net with SMTP; 12 Jul 2000 23:09:25 -0000 Message-ID: <396CFA83.BCB82874@mail.ptd.net> Date: Wed, 12 Jul 2000 19:08:51 -0400 From: "Thomas M. Sommers" Organization: None X-Mailer: Mozilla 4.72 [en] (X11; I; FreeBSD 4.0-RELEASE i386) X-Accept-Language: en MIME-Version: 1.0 To: Dag-Erling Smorgrav , Mike Pritchard , Alfred Perlstein , arch@FreeBSD.ORG Subject: Re: kernel printf %i? References: <5lzonpbc53.fsf@assaris.sics.se> <57067.963303670@axl.ops.uunet.co.za> <20000711013227.P25571@fw.wintelcom.net> <20000711041415.A16480@mppsystems.com> <396CEA70.2C7A69B3@mail.ptd.net> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-arch@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG "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: > Or better yet, this: #include #include #include #include #include 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 for pointing out my error. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-arch" in the body of the message