With few exceptions, all routines in the SDK return an integer-valued result with a value of zero (0) indicating success. When a non-zero value is returned, it is also saved in a per-thread data section, which may be retrieved with either the mtaErrno() function or the mta_errno C pre-processor macro.
The exceptional routines either return nothing (that is, always succeed), or return a string pointer, and signify an error with a return value of NULL.