/* * cmdline.c * Use command to do testing, use "help" to get more information. * * Created on: 2013-1-10 * Author: liming */ #include int do_exit(); int do_nothing(); int do_help(int argc, void *argv[]); int do_d4(int argc, char **argv); int testguess(int argc, char **argv); const cmdline_t cmd[] = { {"exit", do_exit, 0, "[exit]", "--logout"}, {"help", do_help, 1, "[help ]", "--cmd list"}, {"guess", testguess, 6,"","guess from to mask stide mode"}, {"d4", do_d4, 2,"","d4 addr [count]"}, {0, do_nothing, 0, "", ""} }; //命令名按字母表的顺序 int do_d4(int argc, char **argv) { unsigned int addr; int i, num; if(argc < 2) { printf("\nusage: d4 "); return 1; } addr = strtoul(argv[1],0,0); if(argc == 2) num = 1; else num = strtoul(argv[2],0,0); for(i=0; i0x1f)&&(c<0x7f)) //no ctrl_char { cmdbuffer[cp++] = c; putchar(c); } else if((c == 0x8 || c == 0x7f) && cp) //backspace { cp--; cmdbuffer[cp] = '\0'; putchar(0x8); putchar(0x20); //This is an interesting way. putchar(0x8); } else if((c==0xa) || (c==0xd)) { break; } } if(cp == 0) { if(!argv[0]) continue; } else { char *p0; char c0, c; for(i=0, argc=0, p0=cmdbuffer, c0=0; i