Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C Programming > snwprintf - standard

Reply
Thread Tools

snwprintf - standard

 
 
Googler
Guest
Posts: n/a
 
      08-22-2003
> Also is snprintf (the non-unicode version) standard ?
> in either C90 or C9x ?


If snprintf is standard, what are similiar results for snprintf ?

i.e.

char s[100];

snprintf(s,5,"Hello");

What should snprintf return ?
What should be in the buffer 's' ?

snprintf(s,4,"Hello");

Likewise for the above.
 
Reply With Quote
 
 
 
 
William Ahern
Guest
Posts: n/a
 
      08-22-2003
Googler <(E-Mail Removed)> wrote:
>> Also is snprintf (the non-unicode version) standard ?
>> in either C90 or C9x ?


> If snprintf is standard, what are similiar results for snprintf ?
>
> char s[100];
>
> snprintf(s,5,"Hello");


7.19.6.5 The snprintf function
|
| Synopsis
|
| #include <stdio.h>
| int snprintf(char * restrict s, size_t n,
| const char * restrict format, ...);
|
| Description
|
| The snprintf function is equivalent to fprintf, except that the output
| is written into an array (specified by arguments) 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.



> What should snprintf return ?


The snprintf function returns the number of characters that would
have been written had n been sifficiently large.

> What should be in the buffer 's' ?


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.

> snprintf(s,4,"Hello");
>
> Likewise for the above.


re-read above

 
Reply With Quote
 
 
 
 
Michael B Allen
Guest
Posts: n/a
 
      08-22-2003
On Fri, 22 Aug 2003 09:50:57 -0400, Googler wrote:

>> Also is snprintf (the non-unicode version) standard ? in either C90 or
>> C9x ?


Since this is a confusing point, it should be noted that the wide
character functions do not necessarily use Unicode as the wchar_t
charset. Also many of the regular char functions can handle Unicode if
the internal encoding is UTF-8.

Having said that, most mainstream libraries *do* use Unicode values for
wchar_t and it is pretty hard to write a program without manking any
assumptions about the internal encoding at all.

Mike
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
add pexpect to the standard library, standard "install" mechanism. funkyj Python 5 01-20-2006 08:35 PM
How standard is the standard library? steve.leach Python 1 04-18-2005 04:07 PM
Re: snwprintf - standard Googler C Programming 1 08-23-2003 08:13 PM
snwprintf - standard Googler C Programming 1 08-22-2003 11:25 PM
snwprintf - standard Googler C Programming 1 08-22-2003 03:18 PM



Advertisments