Why memcmp return int

142 Views Asked by At

I read about int vs size_t vs ssize_t , and I understand that int and ssize_t is signed while size_t is unsigned.

Why memcmp return int and no return ssize_t like recv return ssize_t?

1

There are 1 best solutions below

3
dbush On BEST ANSWER

An int is sufficient to hold the return value of memcmp.

The memcmp function returns 0 if the two given memory regions are equal, a value less than 0 if the first region compares less, and a value greater than 0 if the first region compares more.

A ssize_t may be larger than an int (and on most implementations it will be), and an int is typically the "natural" word size, so there is no benefit to using the larger size.