quagga开源项目

宏定义路径hmcli/lib/command.h

funcname:函数名称;

cmdname:注册的命令名称;

cmdstr: 实在vtydsh终端下输入的命令字符串,

helpstr:帮助信息,当输入时显示

 

举例说明:

三个具体的宏

首先看一下下面的这个结构体,在宏DEFUN_CMD_ELEMENT中使用到。

struct cmd_element

{

  const char *string;                  /* Command specification by string. */

  int (*func) (struct cmd_element *, struct vty *, int, const char *[]);

  const char *doc;                    /* Documentation of this command. */

  int daemon;                        /* Daemon to which this command belong. */

  vector strvec;                      /* Pointing out each description vector. */

  unsigned int cmdsize;               /* Command index count. */

  char *config;                      /* Configuration string */

  vector subconfig;                   /* Sub configuration string */

  u_char attr;                        /* Command attributes */

};

假设我们这里有一个下面宏定义:

DEFUN (vtysh_show_hello, vtysh_show_hello_cmd,

"show hello", 

  " hello1\n"

  " hello2\n"

)

{

  printf("hello\n");

  return CMD_SUCCESS; 

}

展开后:

int vtysh_show_hello (struct cmd_element *, struct vty *, int, char **);                  

struct cmd_element vtysh_show_hello_cmd =

{

  "show hello",

  vtysh_show_hello,                 

  " hello1\n hello2\n"

};

int vtysh_show_hello (struct cmd_element *self, struct vty *vty, int argc, char **argv)

{

  printf("hello\n");

  return CMD_SUCCESS; 

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值