如何在Linux RPC规范文件中表示linux内置结构?

问题描述

/*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 (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...