【发布时间】:2024-01-19 21:16:01
【问题描述】:
我正在尝试用 swig 包装下面的方法,但我似乎在将 argc 和 agrv 值从 server.py 传递到下面的 rtserver.c 方法时遇到了一些问题。
int initialize(int run, int argc,char *argv[]) {
这是 rtserver.i 中应该处理数据的部分。
%include <argcargv.i>
%apply (int ARGC, char **ARGV) { (int argc, char *argv[]) }
在实现包装的 rtserver 方法的 server.py 文件中,我尝试获取从命令行传入的参数,然后将其发送到包装的消息。
c = sys.argv[1:]
sock = rtserver.initialize(0,c)
从 server.py 文件运行时的输出可以看出。似乎字符串数组已正确读入 server.py 文件。将数组传递给 rsterver.initialize() 时似乎出现了错误。那里的字符串数组是乱码,我已经能够弄清楚没有任何参数可以解析,而是使用存储的默认值启动系统。
python server.py -rp 41104 -ep 41000 -tp 10011
['-rp', '41104', '-ep', '41000', '-tp', '10011']
Fri May 1 22:57:11 2015: 7429 : rtserver :Started (version 1.6) listening on port 41103 for control program, and on port 1024 for clients
有没有更好的方法来做到这一点?或者也许只是我可以真正让它工作的一种方式?
【问题讨论】: