//添加回调函数
#define UF_CALL(X) (report_error( __FILE__, __LINE__, #X, (X)))
static int report_error( char *file, int line, char *call, int irc)
{
if (irc)
{
int
n;
char
err[133],
*messg;
UF_get_fail_message(irc, err);
//分配内存
n = strlen(err) + strlen(file) + strlen(call) + 50;
messg = (char *)malloc(n * sizeof(char));
sprintf(messg, "\n%s\nerror %d at line %d in %s\n%s",