msh

如何定义带有两个命令的参数的命令的书写

发布于 2021-04-12 14:48:29

static void atcmd(int argc, char**argv)
当带有两个参数的这样定义吗?
static void atcmd(int argc, char**argv,char**argv),
那下面的判断情况怎么写呢

查看更多

关注者
0
被浏览
88
5 个回答
我爱学习
我爱学习 2021-04-12

自己测试一下,知道咋写了

mii
mii 2021-04-12
void alarm_add(int argc, char **argv)
{
        struct rt_alarm_setup _alarm;
        if(argc > 1)
        {
                _alarm.flag = RT_ALARM_ONESHOT; /* 单次定时 */
                rt_memset(&_alarm.wktime, RT_ALARM_TM_NOW, sizeof(struct tm));
                _alarm.wktime.tm_hour = atol(argv[1]);
                if(argc > 2)
                {
                        _alarm.wktime.tm_min = atol(argv[2]);
                        _alarm.wktime.tm_sec = 0;
                } 
                if(ALARM[0] == NULL)
                {
                        ALARM[0] = rt_alarm_create(alarm_callback_entry, &_alarm);
                } 
                else
                {
                        rt_alarm_control(ALARM[0], RT_ALARM_CTRL_MODIFY, &_alarm);
                } 
                rt_alarm_start(ALARM[0]);
        }
}
/* 导出到 msh 命令列表中 */
MSH_CMD_EXPORT(alarm_add, e.g: alarm_add 12 15); /* 12时15分 */
flashman2002
flashman2002 2021-04-12

请你在网上查询一下main函数的写法就会明白了,这属于C语言的基本知识。

james_s
james_s 2021-04-12

如果是函数, 例子如下

#include <stdio.h>
#include <time.h>
#include <stdarg.h>
 
void tlog(const char* fmt,...)
{
    char msg[50];
    strftime(msg, sizeof msg, "%T", localtime(&(time_t){time(NULL)}));
    printf("[%s] ", msg);
    va_list args;
    va_start(args, fmt);
    vprintf(fmt, args);
    va_end(args);
}
 
int main(void)
{
   tlog("logging %d %d %d...\n", 1, 2, 3);
}
cxhxy12345
cxhxy12345 2021-04-13

这个是基本的C语言,参考下面
https://blog.csdn.net/dgreh/article/details/80985928
这里描述的很详细了

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览