44 newStr = (
char *)
malloc(strlen(str) + 1);
50 for (; *str !=
'\0'; str++) {
51 if ((*str ==
'\"') || (*str ==
'\'')) {
63 if ((paraTokenStr == NULL) || (value == NULL)) {
64 return (
unsigned int)SH_ERROR;
75 unsigned int ret = SH_OK;
78 if (cmdParsed == NULL) {
79 return (
unsigned int)SH_ERROR;
88 if ((token != NULL) && (cmdParsed->
paramCnt < CMD_MAX_PARAS)) {
106 unsigned int count = 0;
108 char *token = cmdStr;
109 unsigned int ret = SH_OK;
112 if (cmdStr == NULL) {
113 return (
unsigned int)SH_ERROR;
116 for (p = cmdStr; (*p !=
'\0') && (ret == SH_OK); p++) {
118 SWITCH_QUOTES_STATUS(quotes);
123 if ((*p == split) && QUOTES_STATUS_CLOSE(quotes)) {
126 state = STAT_TOKEN_OUT;
132 state = STAT_TOKEN_IN;
140 if (((ret == SH_OK) && (state == STAT_TOKEN_IN)) || (state == STAT_INIT)) {
149 if ((cmdStr == NULL) || (cmdParsed == NULL) || (strlen(cmdStr) == 0)) {
150 return (
unsigned int)SH_ERROR;
@ CMD_TYPE_STD
支持的标准命令参数输入,所有输入的字符都会通过命令解析后被传入。
unsigned int OsCmdParse(char *cmdStr, CmdParsed *cmdParsed)
unsigned int OsCmdParseOneToken(CmdParsed *cmdParsed, unsigned int index, const char *token)
unsigned int OsCmdTokenSplit(char *cmdStr, char split, CmdParsed *cmdParsed)
unsigned int OsCmdParseParaGet(char **value, const char *paraTokenStr)
char * OsCmdParseStrdup(const char *str)
void * malloc(size_t size)
动态分配内存块大小
char * paramArray[CMD_MAX_PARAS]