问题描述
/*Structure to hold the 2 values to be used in computation*/
struct getattr_struct {
char* path;
/*struct stat *statbuf;*/
};
/*Programme,version and procedure deFinition*/
program COmpuTE{
version COmpuTE_VERS{
int BB_GETATTR(getattr_struct)=1;
} =6;
} = 456123789;
我正在使用FUSE和Linux RPC lib开发分布式文件系统。
问题阻止了我:对于某些功能,例如getattr()
,我必须使用struct stat *statbuf
之类的Linux内置结构,但是我不知道如何在上述规范文件中表示它( .x文件)?
如果我直接使用struct stat
作为成员类型,则自动生成的文件会出现这样的错误:
bool_t
xdr_getattr_struct (XDR *xdrs,getattr_struct *objp)
{
register int32_t *buf;
if (!xdr_pointer (xdrs,(char **)&objp->path,sizeof (char),(xdrproc_t) xdr_char))
return FALSE;
if (!xdr_pointer (xdrs,(char **)&objp->statbuf,sizeof (struct stat),(xdrproc_t) xdr_stat))
return FALSE;
return TRUE;
}
fuse_rpc_xdr.c:15:86: error: ‘xdr_stat’ undeclared (first use in this function); did you mean ‘xprt_stat’?
*)&objp->statbuf,(xdrproc_t) xdr_stat))
^~~~~~~~
xprt_stat
fuse_rpc_xdr.c:15:86: note: each undeclared identifier is reported only once for each function it appears in
<builtin>: recipe for target 'fuse_rpc_xdr.o' Failed
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)