linux的vivi命令学习札记

linux的vivi命令:

vivi每一个命令都是一个结构体变量:

typedef struct user_command {

const char *name;

void (*cmdfunc)(int argc, const char **);

struct user_command *next_cmd;

const char *helpstr;

} user_command_t

例如:boot命令

user_command_t boot_cmd = {

"boot",

command_boot,

NULL,

"boot [{cmds}] \t\t\t-- Booting linux kernel"

}

vivi的main函数通过调用misc()及init_buildin_cmds()将许多命令结构体形成一个链表,以全局变量head_cmd为头节点。执行命令时,首先通过函数parseargs()解析输入的命令,然后调用execcmd()查找相应的函数void (*cmdfunc)(int argc, const char **)调用。

相关推荐