Compares str1 and str2 like strcmp.
Handles null gracefully by sorting it before non-null strings. Comparing two null pointers returns 0.
| str1 |
a C string or null |
| str2 |
another C string or null |
|
an integer less than, equal to, or greater than zero, if |