Does it make sense to use Cstring as the return value type when ccall'ing methods returning a char* string? I know the type is mainly intended to avoid converting Julia strings containing \0 to C strings, but I thought it would also make sense to use it as the ccall return type because it makes the code more readable (i.e. "this code returns a string" rather than "it's just a pointer").
However, I'm afraid there might be a gotcha:
julia> Ptr{UInt8}(0x0) == C_NULL
true
julia> Cstring(Ptr{UInt8}(0x0)) == C_NULL
false
Is this intended? Some API's (for example tempnam) return NULL upon failure, so that would break when using Cstring as ccall's return value type and subsequently comparing against C_NULL.