📄 gcexception.c
字号:
#include "stdio.h"
#include "gc.h"
#define EXC_MAX_EXCEPTION_NUM 100
#define EXC_MAX_NAME_LEN 100
typedef struct
{
NW_INT32 nExcNum;
NW_CHAR szExcList[EXC_MAX_EXCEPTION_NUM][EXC_MAX_NAME_LEN];
}TExcInfo;
static TExcInfo g_tExcInfo = {0};
NW_VOID gcExcInit(NW_BOOL bCreate)
{
memset(&g_tExcInfo,0,sizeof(TExcInfo));
if (bCreate)
{
ffsDirectWrite("/tffs0/exception",&g_tExcInfo, 0, sizeof(TExcInfo));
}
else
{
ffsMemRead("/tffs0/exception", &g_tExcInfo, 0, sizeof(TExcInfo));
}
}
NW_BOOL gcExcAdd(NW_CHAR* szExcName)
{
NW_INT32 nExc;
NW_INT32 nExcNum = 0;
NW_CHAR* pchName = NULL;
if(NULL == szExcName)
{
printf("Invalid exception name!\n");
return FALSE;
}
else
{
if (strlen(szExcName) >= EXC_MAX_NAME_LEN)
{
printf("Too long exception name!\n");
return FALSE;
}
}
if (OK == ffsMemRead("/tffs0/exception", &g_tExcInfo, 0, sizeof(TExcInfo)))
{
if (g_tExcInfo.nExcNum >= EXC_MAX_EXCEPTION_NUM)
{ /*override old exceptions*/
g_tExcInfo.nExcNum = 0;
}
nExcNum = g_tExcInfo.nExcNum;
for (nExc =0;nExc < nExcNum; nExc++)
{
pchName = g_tExcInfo.szExcList[nExc];
if (0 == strcmp((const NW_CHAR*)pchName,(const NW_CHAR*)szExcName))
{
printf("Same exception!\n");
return FALSE;
}
}
pchName = g_tExcInfo.szExcList[nExc];
strcpy(pchName,(const NW_CHAR*)szExcName);
g_tExcInfo.nExcNum++;
ffsMemWrite("/tffs0/exception", &g_tExcInfo, 0, sizeof(TExcInfo));
return TRUE;
}
return FALSE;
}
NW_VOID gcExcShow(NW_VOID)
{
NW_INT32 nExc;
NW_INT32 nExcNum = 0;
NW_CHAR* pchName = NULL;
if (OK == ffsMemRead("/tffs0/exception", &g_tExcInfo, 0, sizeof(TExcInfo)))
{
nExcNum = g_tExcInfo.nExcNum;
for (nExc =0;nExc < nExcNum; nExc++)
{
pchName = g_tExcInfo.szExcList[nExc];
printf("NO.%d:%s\n",nExc,pchName);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -