RPC规范中结构内部的2D数组定义不起作用
我正在尝试使用RPC实现NFS。现在我的规范文件看起来是这样的:(这是它的基本版本:) 当我试图使用RPC规范中结构内部的2D数组定义不起作用,c,struct,rpc,nfs,C,Struct,Rpc,Nfs,我正在尝试使用RPC实现NFS。现在我的规范文件看起来是这样的:(这是它的基本版本:) 当我试图使用rpcgen编译这个Spec.x时,我得到了如下错误: char arg[10][10]; ^^^^^^^^^^^^^^ Spec.x, line 4: expected ';' 这可能是什么原因?我不能在RPC规范中声明结构内部的2D数组吗?(当我试图以这种方式声明变量时出现了相同的错误:inta,b,c在结构中!)在rpcgen的termini中,您需要一个字符串数组,而不是一个二维字符数
rpcgen
编译这个Spec.x
时,我得到了如下错误:
char arg[10][10];
^^^^^^^^^^^^^^
Spec.x, line 4: expected ';'
这可能是什么原因?我不能在RPC规范中声明结构内部的2D数组吗?(当我试图以这种方式声明变量时出现了相同的错误:
inta,b,c
在结构中!)在rpcgen的termini中,您需要一个字符串数组,而不是一个二维字符数组。首先,您必须键入一个参数类型
typedef string arg<10>;
typedef字符串参数;
然后创建这些参数的数组:
struct input
{
string command<20>;
arg args[10];
int numargs;
};
struct输入
{
字符串命令;
arg-args[10];
国际货币基金组织;
};
类似的结果:
typedef string filename<50>;
struct lsresult
{
filename arr[256];
};
typedef字符串文件名;
结构lsresult
{
文件名arr[256];
};
这应该行得通但我之前没有写过任何东西…它只在2D数组中显示错误…当我将其更改为1D时,错误不会出现@PaulOgilvie…您的rpcgen命令是否没有显示此代码的错误?类似于C,但它不是C。除此之外,它似乎不为具有多个维度的阵列提供直接支持。我自己对这种语言不是很精通,所以我有足够的信心来写一个答案,但看起来你有一些可能的选择。阅读rpcgen语言规范,它似乎不支持多维数组。看见
typedef string filename<50>;
struct lsresult
{
filename arr[256];
};