⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 apierrno.c

📁 用c/c++实现的一个CMPP API
💻 C
字号:
/***************************************************************************  Copyright    : 2001-2002, ASPIRE TECHNOLOGIES (SHENZHEN) LTD.  Program ID   : apierrno.c  Description  : 函数调用的错误描述的操作函数  Version      : NEWCMPPAPI  Functions    : 内部函数  Modification Log:       DATE         AUTHOR          DESCRIPTION --------------------------------------------------------------------------       11/25/2002   wenyz     Create***************************************************************************/#include "cmppapi.h"#include "seterrno.h"#define BUFFERLEN   128static  char    g_ErrorDetail[ BUFFERLEN+1 ]; /*详细错误描述*/#define REASONBUFFERLEN 256static  char    g_ReasonDetail[ REASONBUFFERLEN+1 ]; /* 原因的错误描述 *//* *描述:打印详细错误描述        (到标准输出和错误输出) *输入:无 *输出:无 *返回值:无 *        */void    vPrintErrorDetail( ){    if( strlen( g_ErrorDetail ) == 0 )    {        fprintf( stdout, "%s", "no error info\n" );        fflush( stdout );        fprintf( stderr, "%s", "no error info\n" );    }    else    {        fprintf( stdout, "%s\n", g_ErrorDetail );        fflush( stdout );        fprintf( stderr, "%s\n", g_ErrorDetail );    }    return;}/* *描述:得到详细错误描述字符串        (到标准输出和错误输出) *输入:无 *输出:无 *返回值:const char* 详细错误描述字符串指针 *        */const char* ASPAPI sGetErrorDetail( ){    if( strlen( g_ErrorDetail ) == 0 )    {        /*        vsnprintf( g_ErrorDetail, sizeof(g_ErrorDetail)-1,                     "%s", "no error info\n" );        */        snprintf( g_ErrorDetail, sizeof(g_ErrorDetail)-1,                     "%s", "no error info\n" );            }    return g_ErrorDetail;}/* *描述:设置详细错误描述  *输入:变参 *输出:无 *返回值:无 *        */void    vSetErrorDetail(const char *fmt, ...){        va_list     ap;    va_start(ap, fmt);    ////////////////    //清空上次的内容    memset( g_ErrorDetail, 0, sizeof(g_ErrorDetail) );        /* this is safe */    vsnprintf( g_ErrorDetail, sizeof(g_ErrorDetail)-1, fmt, ap );     va_end(ap);    return;}const char* strGetErrorDetailString( ){    if( strlen( g_ErrorDetail ) == 0 )    {        /*        vsnprintf( g_ErrorDetail, sizeof(g_ErrorDetail)-1,                     "%s", "no error info\n" );        */        snprintf( g_ErrorDetail, sizeof(g_ErrorDetail)-1,                     "%s", "no error info\n" );            }    return g_ErrorDetail;}/* * 描述:通过错误返回值得到详细错误描述字符串  * 输入:int nErrReturn 调用API得到的错误返回值 * 输出:无 * 返回值:const char* 详细错误描述字符串指针 */const char*  ASPAPI sGetErrorReason( int nErrReturn ){    char*   pchStart = g_ReasonDetail;    ////////////////    //清空上次的内容    memset( g_ReasonDetail, 0, sizeof(g_ReasonDetail) );        switch( nErrReturn )    {            case  API_ERR_INVALID :     ///* 非法的输入参数 */                snprintf( g_ReasonDetail, sizeof(g_ReasonDetail)-1,                         "%s", "[Invalid Input Parameter]:" );            break;                                    case  API_ERR_NETWORK :     ///* 网络错误 */                snprintf( g_ReasonDetail, sizeof(g_ReasonDetail)-1,                         "%s", "[Network Error]:" );            break;                                    case API_ERR_INIFILE : ///* 配置文件错误 */                snprintf( g_ReasonDetail, sizeof(g_ReasonDetail)-1,                         "%s", "[Config File Error]:" );            break;            case API_ERR_TIMEOUT :  ///* 超时错误 */                snprintf( g_ReasonDetail, sizeof(g_ReasonDetail)-1,                         "%s", "[TimeOut Error]:" );            break;            case API_ERR_PROTOCOL: ///* 协议错误 */                snprintf( g_ReasonDetail, sizeof(g_ReasonDetail)-1,                         "%s", "[Protocol Error]:" );            break;            case API_ERR_RESP : ///* 网关返回错误 */                snprintf( g_ReasonDetail, sizeof(g_ReasonDetail)-1,                         "%s", "[Response  Error]:" );                            break;            case API_ERR_OTHER: ///* 其它错误 */                snprintf( g_ReasonDetail, sizeof(g_ReasonDetail)-1,                         "%s", "[Other Error]:" );            break;                               default:                snprintf( g_ReasonDetail, sizeof(g_ReasonDetail)-1,                         "%s", "invalid input parameter" );                return g_ReasonDetail;            break;                     }    pchStart += strlen( g_ReasonDetail );        snprintf( pchStart, sizeof(g_ReasonDetail)-1-strlen( g_ReasonDetail ),              "%s", sGetErrorDetail( ) );        return g_ReasonDetail;        }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -