苏林_SLRofa 2022-09-23 11:55 采纳率: 14.3%
浏览 23
已结题

rtos的shell命令是如何创建一个拥有多个参数的任务的

如题,在最近使用控制台调用函数时,发现公司rtos系统中exec命令(调用一个函数的命令)是创建了一个任务去调用一个多参数的函数(因为运行该函数时shell和其他应用不会被阻塞,正常响应),但系统中提供的api都是argv的形式。而我写的函数是多个参数,又看不到系统代码。所以它是如何实现控制台传多个参数的呢(系统中有从符号表查函数地址的接口,可以拿到函数地址,但参数数量,类型和返回值都未知,我可以调接口来创建任务,但要求函数参数列表格式类似argv)?命令格式如下。


exec function 参数1,参数2,参数3
  • 写回答

1条回答 默认 最新

  • qllaoda 2022-09-23 13:38
    关注

    可以这样调用的函数,其参数形式必须是int argc, char **argv这种形式。系统调用的时候,把参数的个数传给了argc,各个字符串参数传给了agv,这样被调用的函数就知道了有几个参数,每个参数分别是什么字符串。如果你希望传递的是整形数据,当然也需要先转换成字符串,然后在函数里自己解析,当然,还要做参数输入是否正确的判断。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月14日
  • 修改了问题 9月29日
  • 创建了问题 9月23日