123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259 |
- #include <stdint.h>
- #include <stdlib.h>
- #include <stddef.h>
- #include <string.h>
- int string_to_arg(int *argc, const char *argv[],char *string)
- {
- int argvlen = 0;
- int paramnum = 0;
- char *tmp = NULL;
- char bak;
- int len;
- argvlen = *argc;
- *argc = paramnum;
- if(NULL == string)
- {
- return paramnum;
- }
-
- len = strlen(string);
- tmp = string;
- while(tmp < (string + len))
- {
- if(*tmp == ' ')
- {
- *tmp = '\0';
- }
- tmp++;
- }
- bak = '\0';
- tmp = string;
- while(tmp < (string + len))
- {
- if((*tmp != '\0')&&(bak =='\0'))
- {
- if(paramnum < argvlen)
- {
- argv[paramnum] = tmp;
- paramnum++;
- }
- }
- bak = *tmp;
- tmp++;
- }
- *argc = paramnum;
- return paramnum;
- }
- char *osal_strdup(const char *ch)
- {
- char *copy;
- size_t length;
- if(NULL == ch)
- return NULL;
- length = strlen(ch);
- copy = (char *)malloc(length + 1);
- if(NULL == copy)
- return NULL;
- (void) strncpy(copy, ch, length);
- copy[length] = '\0';
- return copy;
- }
- char *osal_strcat(char *str[])
- {
- char *ret = NULL;
- int str_tnum = 0;
- int str_tlen = 0;
- int str_off = 0;
- int i = 0;
- if(NULL == str)
- {
- return ret;
- }
- while(NULL != str[i])
- {
- str_tlen += strlen(str[i]);
- str_tnum++;
- i++;
- }
- ret = malloc(str_tlen);
- if(NULL != ret)
- {
- for(i =0;i< str_tnum;i++)
- {
- (void) memcpy(ret + str_off,str[i],strlen(str[i]));
- str_off += strlen(str[i]);
- }
- ret[str_off] = '\0';
- }
- return ret;
- }
- int hexstr2byte(const char *buf, int len, char *bufout)
- {
- int ret = -1;
- int i = 0;
- uint8_t low;
- uint8_t high;
- if (NULL == buf || len <= 0 || NULL == bufout)
- {
- return ret;
- }
- ret = 0;
- for(i = 0; i < len; i = i+2)
- {
- if(((buf[i]) >= '0') && (buf[i] <= '9'))
- {
- high = (uint8_t)( buf[i] - '0');
- }
- else if((buf[i] >= 'A') && (buf[i] <= 'F'))
- {
- high = (uint8_t)( buf[i] - 'A') + 10;
- }
- else if((buf[i] >= 'a') && (buf[i] <= 'f'))
- {
- high = (uint8_t)( buf[i] - 'a') + 10;
- }
- else
- {
- ret = -1;
- break;
- }
- if(((buf[i+1]) >= '0') && (buf[i+1] <= '9'))
- {
- low = (uint8_t)( buf[i+1] - '0');
- }
- else if((buf[i+1] >= 'A') && (buf[i+1] <= 'F'))
- {
- low = (uint8_t)( buf[i+1] - 'A') + 10;
- }
- else if((buf[i+1] >= 'a') && (buf[i+1] <= 'f'))
- {
- low = (uint8_t)( buf[i+1] - 'a') + 10;
- }
- else
- {
- ret = -1;
- break;
- }
- bufout[i/2] = (char)((high<<4)|(low&0x0F));
- }
- return ret;
- }
- int byte2hexstr(uint8_t *bufin, int len, char *bufout)
- {
- int i = 0;
- uint8_t tmp_l = 0x0;
- uint8_t tmp_h = 0;
- if ((NULL == bufin )|| (len <= 0 )||( NULL == bufout))
- {
- return -1;
- }
- for(i = 0; i < len; i++)
- {
- tmp_h = (bufin[i]>>4)&0X0F;
- tmp_l = bufin[i] &0x0F;
- bufout[2*i] = (tmp_h > 9)? (tmp_h - 10 + 'a'):(tmp_h +'0');
- bufout[2*i + 1] = (tmp_l > 9)? (tmp_l - 10 + 'a'):(tmp_l +'0');
- }
- bufout[2*len] = '\0';
- return 0;
- }
|