[Help-gnutls] Recognising error codes with an unsigned size_t

Michael Weiser michael at weiser.dinsnail.net
Wed Nov 12 23:14:42 CET 2008


I'm writing a small program using gnutls and its gnutls_record_{recv,send}()
interface. They return a size_t which holds either the number of bytes
transferred or a negative error code.

But on Mac OS X size_t is an unsigned long which gives me grief when
trying to recognise an error code as such.

For a simple read() call this is straightforward to fix: Instead of

	if (bytes < 0)

I now use

	if (bytes == -1)

Obviously this doesn't work for gnutls error codes which may range from
-1 to -65500. Something like

	if ((signed long)bytes < 0)

seems just as wrong to me. Am I missing the obvious here?

More information about the Gnutls-help mailing list