Tom Lane wrote: > Bruce Momjian <pgman@candle.pha.pa.us> writes: > > Tom, did you implement this functionality in *printf? > > The size may be given as zero to find out how many characters are > > needed; in this case, the str argument is ignored. Sprintf() and > > vsprintf() effectively assume an infinite size. > > Where do you read that? The SUS says the opposite: > > If the value of n is zero on a call to snprintf(), an unspecified > value less than 1 is returned. > > and that's what our code implements.
I got it from the BSD/OS manual page, and in the NetBSD manual page I see: If size is zero, nothing is written and str may be a NULL pointer. and: Upon successful completion snprintf() and vsnprintf() return the number of characters that would have been written to a sufficiently sized str, excluding the terminating NUL character. but it seems this is some BSD'ism that we don't need to support if the standard doesn't say so. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 ---------------------------(end of broadcast)--------------------------- TIP 6: explain analyze is your friend