Subject: Re: standards/32981: man page is wrong on return values of printf/fprintf/sprintf/etc.
To: None <gnats-bugs@netbsd.org, standards-manager@netbsd.org,>
From: Christos Zoulas <christos@zoulas.com>
List: netbsd-bugs
Date: 03/03/2006 17:11:03
On Mar 3, 10:05pm, veenhuizen@users.sourceforge.net (Johan Veenhuizen) wrote:
-- Subject: standards/32981: man page is wrong on return values of printf/fpr

| 	I have no copies of the C90/C99 standards in front of me,
| 	but "The C Programming Language, 2nd Ed.", POSIX and SUS
| 	document different return values for fprintf/sprintf/etc
| 	than the NetBSD manual page.
| 
| 	I have no clue about asprintf and vasprintf.  Maybe their
| 	return values should be changed as well, but they are not
| 	standardised yet as far as I know.
| 
| >How-To-Repeat:
| 
| 	$ man 3 printf
| 
| >Fix:
| 
| Index: printf.3
| ===================================================================
| RCS file: /cvsroot/src/lib/libc/stdio/printf.3,v
| retrieving revision 1.40
| diff -u -r1.40 printf.3
| --- printf.3	20 Jul 2005 13:31:15 -0000	1.40
| +++ printf.3	3 Mar 2006 21:38:40 -0000
| @@ -667,7 +667,7 @@
|  and
|  .Fn vfprintf
|  return the number of characters printed.
| -Otherwise \-1 is returned and
| +Otherwise a negative value is returned and
|  .Dv errno
|  is set to indicate the error.
|  .Pp

...

Well -1 is negative (so we fulfill the requirement) and our implementation
only returns -1, so our documentation is correct. Perhaps a note saying that
conforming implementations are not required to return -1 and portable code
should not depend on these functions returning -1, is appropriate instead.

christos