fdprintf() Anyone?

John Scott jscott@posteo.net
Fri Dec 12 00:19:01 GMT 2025


Joel Sherrill wrote:
> int fdprintf (int fd, const char *format,...) 

POSIX.1-2008 has already standardized a version of printf() for writing to file descriptors, and it has the same prototype: it's called dprintf (without the 'f' at the beginning). There is also a va_list variant named vdprintf(). These are widely available and I think GNU folks drove their specification.

These are already included at https://sourceware.org/git/?p=newlib-cygwin.git;a=blob;f=newlib/libc/stdio/dprintf.c however I think the following text is no longer accurate:
> PORTABILITY
> This function is originally a GNU extension in glibc and is not portable.

Post-standardization I think implementations picked this up without hesitation. You probably just missed this; in fact, dprintf() returns the same value as fdprintf() does to indicate success or error. I think the NetBurner folks giving their function a different name was, at least in hindsight, a botch.

> But the user is using a system where they are in <fcntl.h>.
For compatibility with that particular application I'm sure you could make fdprintf() an alias for dprintf(). If a user is wanting to use Newlib with NetBurner such a shim might be welcome in a directory specific to that class of systems.

> Is there any interest in these eventually landing in newlib?
The equivalent standard functions are already in Newlib and my preference (as someone who, to be frank, has never contributed to Newlib) is to do nothing here. If your users are porting an application away, defining '-Dfdprintf=dprintf' may be all they need to do.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 252 bytes
Desc: This is a digitally signed message part
URL: <https://sourceware.org/pipermail/newlib/attachments/20251212/86296ea1/attachment.sig>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 6270 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/newlib/attachments/20251212/86296ea1/attachment.p7s>


More information about the Newlib mailing list