• 解析命令行参数




    #include <stdio.h>
    #include<string.h>
    
    
    #define CFG_MAXARGS 10
    //parse_line函数参考uboot源码
    static int parse_line (char *line, char *argv[])
    {
    	int nargs = 0;
    
    	while (nargs < CFG_MAXARGS) {
    
    		/* skip any white space */
    		while ((*line == ' ') || (*line == '	')) {
    			++line;
    		}
    
    		if (*line == '') {	/* end of line, no more args	*/
    			argv[nargs] = NULL;
    			return (nargs);
    		}
    
    		argv[nargs++] = line;	/* begin of argument string	*/
    
    		/* find end of string */
    		while (*line && (*line != ' ') && (*line != '	')) {
    			++line;
    		}
    
    		if (*line == '') {	/* end of line, no more args	*/
    			argv[nargs] = NULL;
    			return (nargs);
    		}
    
    		*line++ = '';		/* terminate current arg	 */
    	}
    
    	return (nargs);
    }
    //解析命令行参数
    int main()
    {
    	int argc,i;
      char buf[1024]="set_network 2 ssid "wifiUncleWang"";
      char *argv[CFG_MAXARGS];
    
    //  strncpy(buf, cmd, 1024);
    //  buf[1023] = '';
      
      argc = parse_line(buf, argv);
      
      for (i=0; i < argc; i++)  
     	 	printf("
     %s 
    ",argv[i]);
       
       return 0;
    }


    运行结果:



     set_network 


     2 


     ssid 


     "wifiUncleWang" 






  • 相关阅读:
    《逍遥法外》观后感
    1237. 螺旋折线
    P2196 挖地雷
    787. 归并排序
    466. 回文日期
    P1032 字串变换
    P1825 [USACO11OPEN]Corn Maze S
    P1162 填涂颜色
    P1101 单词方阵
    P1019 单词接龙
  • 原文地址:https://www.cnblogs.com/alan666/p/8311849.html
Copyright © 2020-2023  润新知