QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4209|回复: 1

如何使用rpcgen 生成多形参的过程(函数)

[复制链接]
发表于 2011-4-12 10:18:07 | 显示全部楼层 |阅读模式
最近公司开发要用到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不止一个参数!
请问各位有什么解决办法吗?
 楼主| 发表于 2011-4-12 10:19:17 | 显示全部楼层
对于第一种情况,使用:
  rpcgen -C -N time.x   
不使用-N会报只支持一个参数。

对于第二种情况,使用:
  rpcgen -C time.x   
这里就只有一个指针类型的形参了!

rpcgen的选项说明中指出 -N是支持多个参数且call by vlaue,所以可能不支持指针类型的参数。
但实际开发中应该有解决的办法吧!谢谢各位了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-1 22:34 , Processed in 0.040107 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表