Question about this; I didn't care much before, but thinking about this more, I 
think I do care a bit...

The OSX man page for snprintf says:

     These functions return the number of characters printed (not including
     the trailing `\0' used to end output to strings) or a negative value if
     an output error occurs, except for snprintf() and vsnprintf(), which
     return the number of characters that would have been printed if the n
     were unlimited (again, not including the final `\0').

So if hwloc_snprintf() returns 0, how do you know if you got a zero-length 
string or an error?  I would think that returning -1 for errors is better 
because then you know that the string is invalid and should not attempt to be 
printed.  Whereas 0 always means "a valid zero-length string".

I think callers should check for whatever we document they should check for -- 
hwloc_snprintf() is "new", so they (should) check for whatever we put in 
doxygen.

My $0.04...



On May 7, 2010, at 8:55 AM, <sthib...@osl.iu.edu> <sthib...@osl.iu.edu> wrote:

> Author: sthibaul
> Date: 2010-05-07 08:55:18 EDT (Fri, 07 May 2010)
> New Revision: 2083
> URL: https://svn.open-mpi.org/trac/hwloc/changeset/2083
> 
> Log:
> make hwloc_snprintf return 0 instead of -1, which callers may not check for.
> Text files modified:
>    trunk/src/misc.c |     3 ++-                                    
>    1 files changed, 2 insertions(+), 1 deletions(-)
> 
> Modified: trunk/src/misc.c
> ==============================================================================
> --- trunk/src/misc.c    (original)
> +++ trunk/src/misc.c    2010-05-07 08:55:18 EDT (Fri, 07 May 2010)
> @@ -40,7 +40,8 @@
>      size *= 2;
>      str = malloc(size);
>      if (NULL == str) {
> -        return -1;
> +      /* Couldn't allocate?! Let's return the least surprising value. */
> +      return 0;
>      }
>      va_start(ap, format);
>      errno = 0;
> _______________________________________________
> hwloc-svn mailing list
> hwloc-...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/hwloc-svn
> 


-- 
Jeff Squyres
jsquy...@cisco.com
For corporate legal information go to:
http://www.cisco.com/web/about/doing_business/legal/cri/


Reply via email to