如题,在最近使用控制台调用函数时,发现公司rtos系统中exec命令(调用一个函数的命令)是创建了一个任务去调用一个多参数的函数(因为运行该函数时shell和其他应用不会被阻塞,正常响应),但系统中提供的api都是argv的形式。而我写的函数是多个参数,又看不到系统代码。所以它是如何实现控制台传多个参数的呢(系统中有从符号表查函数地址的接口,可以拿到函数地址,但参数数量,类型和返回值都未知,我可以调接口来创建任务,但要求函数参数列表格式类似argv)?命令格式如下。
exec function 参数1,参数2,参数3
可以这样调用的函数,其参数形式必须是int argc, char **argv这种形式。系统调用的时候,把参数的个数传给了argc,各个字符串参数传给了agv,这样被调用的函数就知道了有几个参数,每个参数分别是什么字符串。如果你希望传递的是整形数据,当然也需要先转换成字符串,然后在函数里自己解析,当然,还要做参数输入是否正确的判断。