RPC应用-如何使用prcgen 生成多形参的函数
时间:2011-04-11
来源:互联网
最近公司开发要用到RPC,就先研究了一下!过程是先构造一个.x结尾的说明书文件,然后使用rpcgen 生成RPC通信所需的x_svc.c、x_clnt.c、x_xdr.c等文件!
例如一个简单的time.x文件
program TIMEPROG {
version PRINTIMEVERS {
string PRINTIME( string ) = 1;
int ADD_NUM(int,int) = 2;
} = 1;
} = 0x20000001;
这里的ADD_NUM函数要求有多个参数,在rpcgen 的选项中好像要使用-N,但生成后的.h文件中
extern int *add_num_1(int,int,struct svc_req *);
如果是一个参数,例如
program TIMEPROG {
version PRINTIMEVERS {
string PRINTIME( string ) = 1;
int ADD_NUM(int) = 2;
} = 1;
} = 0x20000001;
使用rpcgen 时不使用-N,则生成的.h文件中
extern int *add_num_1(int *,struct svc_req *);
这里就是指针类型的形参!
实际开发中,我们不但需要多个形参,还需要支持指针类型,毕竟从远端get不止一个参数!
请问各位有什么解决办法吗?
例如一个简单的time.x文件
program TIMEPROG {
version PRINTIMEVERS {
string PRINTIME( string ) = 1;
int ADD_NUM(int,int) = 2;
} = 1;
} = 0x20000001;
这里的ADD_NUM函数要求有多个参数,在rpcgen 的选项中好像要使用-N,但生成后的.h文件中
extern int *add_num_1(int,int,struct svc_req *);
如果是一个参数,例如
program TIMEPROG {
version PRINTIMEVERS {
string PRINTIME( string ) = 1;
int ADD_NUM(int) = 2;
} = 1;
} = 0x20000001;
使用rpcgen 时不使用-N,则生成的.h文件中
extern int *add_num_1(int *,struct svc_req *);
这里就是指针类型的形参!
实际开发中,我们不但需要多个形参,还需要支持指针类型,毕竟从远端get不止一个参数!
请问各位有什么解决办法吗?
作者: yinxue2011 发布时间: 2011-04-11
对于第一种情况,使用:
rpcgen -C -N time.x
不使用-N会报只支持一个参数。
对于第二种情况,使用:
rpcgen -C time.x
这里就只有一个指针类型的形参了!
rpcgen的选项说明中指出 -N是支持多个参数且call by vlaue,所以可能不支持指针类型的参数。
但实际开发中应该有解决的办法吧!谢谢各位了!
rpcgen -C -N time.x
不使用-N会报只支持一个参数。
对于第二种情况,使用:
rpcgen -C time.x
这里就只有一个指针类型的形参了!
rpcgen的选项说明中指出 -N是支持多个参数且call by vlaue,所以可能不支持指针类型的参数。
但实际开发中应该有解决的办法吧!谢谢各位了!
作者: yinxue2011 发布时间: 2011-04-11
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28