2017-04-18
概述
grep um
toolbox grep um
./system/core/toolbox/
【图2】
由上图2可以看到该目录下包含有大多数常用命令的源代码。toolbox程序的意义就是将这些零散的程序的入口进行打包。根据用户在串口中键入的toolbox命令后面的参数不同来选择执行对应的程序。例如,当键入上述的 ‘toolbox grep um’命令时,系统会先将命令的参数通过toolbox的进行解析,最终调用grep.c中的grep_main()函数进行二次解析。
toolbox处理流程
./system/core/toolbox/toolbox.c
1 #define TOOL(name) int name##_main(int, char**); 2 #include "tools.h" 3 #undef TOOL 4 5 static struct 6 { 7 const char *name; 8 int (*func)(int, char**); 9 } tools[] = { 10 { "toolbox", toolbox_main }, 11 #define TOOL(name) { #name, name##_main }, 12 #include "tools.h" 13 #undef TOOL 14 { 0, 0 }, 15 };
1 tools[] = { 2 { "toolbox", toolbox_main }, 3 {"ls", ls_main}, 4 . 5 . 6 . 7 {"grep", grep_main}, 8 { 0, 0 }, 9 };
grep
1 ./system/core/toolbox/grep/grep.c
1 ./system/core/toolbox/grep/util.c
1 ./system/core/toolbox/grep/fastgrep.c
1 ./system/core/toolbox/grep/util.c
1 ./system/core/toolbox/grep/grep.h
1 ./system/core/toolbox/grep/file.c