 <i>a</i> into a textual representation. Unless <i>buf</i> is NULL, the representation is written as a NUL-terminated string to <i>buf</i>, where at most <i>buf_len</i> bytes are written, truncating the result if necessary. In any case it returns the total string length, excluding the NUL character, required for non-truncated representation, or -1 on error. If <i>no_name</i> is 0 then if the object has a long or short name then that will be used, otherwise the numerical form will be used. If <i>no_name</i> 