Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RPC规范中结构内部的2D数组定义不起作用_C_Struct_Rpc_Nfs - Fatal编程技术网

RPC规范中结构内部的2D数组定义不起作用

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中,您需要一个字符串数组,而不是一个二维字符数

我正在尝试使用RPC实现NFS。现在我的规范文件看起来是这样的:(这是它的基本版本:)

当我试图使用
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];
};