语法错误
void cmd_process(int argc, char* argv[])
{
char *pszCmd = NULL;
int iCmdNum =0;
//内存分配失败,退出函数
pszCmd = (char*)malloc(CMD_LEN);
if (NULL == pszCmd)
{
return;
}
#ifdef _WIN32
// while (true)
#endif
{
iCmdNum =0;
memset(pszCmd, 0, CMD_LEN);
//获取命令pszCmd。
iCmdNum = scanf("%s", pszCmd);
pszCmd[CMD_LEN-1] = 0;
if (1 == iCmdNum)
{
char *pComma = pszCmd;
char *pCmdStartPos = pszCmd;
char pszCmdBuffer[512];
// 多命令以逗号分割
pComma = strstr(pCmdStartPos, CMD_SEPARATRIX);
//存在多命令时处理方法
while (NULL != pComma)
{
size_t uiCpyLen = 0;
//针对存在多个逗号的问题,一直找到第一个不为逗号的位置pCmdStartPos,pComma为pCmdStartPos后的第一个逗号的位置
if (pComma == pCmdStartPos)
{
pCmdStartPos = pComma+1;
pComma = strstr(pCmdStartPos, CMD_SEPARATRIX);
continue;
}
memset(pszCmdBuffer, 0, sizeof(pszCmdBuffer));
//uiCpyLen为第一个命令的长度,并将第一个命令复制给pszCmdBuffer。
uiCpyLen = min(sizeof(pszCmdBuffer), (size_t)(pComma - pCmdStartPos));
strncpy(pszCmdBuffer, pCmdStartPos, uiCpyLen);
//执行pszCmdBuffer命令所对应的操作
cmd_dispatch(pszCmdBuffer);
pCmdStartPos = pComma+1;
while(' ' == *pCmdStartPos)
{
pCmdStartPos ++;
}
pComma = strstr(pCmdStartPos, CMD_SEPARATRIX);
}
cmd_dispatch(pCmdStartPos);
}
else
{
libOutputStr("Get command fail.");
}
}
free(pszCmd);
return;
}
上面这个函数 编译老是出现一个错误
错误行:
uiCpyLen = min(sizeof(pszCmdBuffer), (size_t)(pComma - pCmdStartPos));
error C2059: 语法错误 : “>”
求解 这是为什么呢?