This is the mail archive of the newlib@sources.redhat.com mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Problem with snprintf()


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?

cgf

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]