我有这段代码:
using Posix;
int fuseguifs_getattr(string path, Posix.Stat *stbuf)
{
int res;
res = Posix.lstat(path, stbuf);
if (res == -1)
return -Posix.errno;
return 0;
}
static int main(string [] args)
{
Posix.Stat *a;
fuseguifs_getattr("/home/leon", a);
return 0;
}
当我试图编译它时,我得到了这个错误:
test.vala:6.26-6.30: error: Argument 2: Cannot convert from
`Posix.Stat' to `Posix.Stat*'
res = Posix.lstat(path, stbuf);
^^^^^
Compilation failed: 1 error(s), 0 warning(s)
我试过改变这个: fuseguifs_getattr("/home/leon", a); 到 fuseguifs_getattr("/home/leon", *a);
但后来我收到一个错误:“无法将值传递给引用或输出参数”
我试过添加“out”: res = Posix.lstat(path, out *stbuf);
这给出了这个错误:错误:ref 和 out 方法参数只能与字段、参数、局部变量和数组元素访问一起使用
我无法更改 fuseguifs_getattr 方法参数,因为这是熔断器绑定所期望的一部分。
我真的被困住了。有谁可以解决这个问题?