Problem with snprintf()

Chris Faylor
Tue Aug 8 16:46:00 GMT 2000

On Mon, Aug 07, 2000 at 06:53:50PM +0200, Corinna Vinschen wrote:
>Jonathan Larmour wrote:
>> Here's what C99 says:
>>The snprintf function is equivalent to fprintf, except that the output
>>is written into an array (specified by argument s) rather than to a
>>stream.  If n is zero, nothing is written, and s may be a null pointer.
>>Otherwise, output characters beyond the n-1st are discarded rather than
>>being written to the array, and a null character is written at the end
>>of the characters actually written into the array.  If copying takes
>>place between objects that overlap, the behavior is undefined.
>>Returns The snprintf function returns the number of characters that
>>would have been written had n been sufficiently large, not counting the
>>terminating null character, or a negative value if an encoding error
>>occurred.  Thus, the null-terminated output has been completely written
>>if and only if the returned value is nonnegative and less than n.
>>So snprintf() should always add a terminating \0.
>And snprintf() may return -1 only in case of encoding error, not if the
>string exceeds `size'.  So that is answered as well, IMO.

So, have we come up with a patch for this behavior?


More information about the Newlib mailing list