У меня есть этот кусок кода:
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);to fuseguifs_getattr ("/ home / leon", * a);
Но затем я получаю сообщение об ошибке: "Невозможно передать значение в ссылочный или выходной параметр"
Я пытался добавить "": res = Posix.lstat (path, out * stbuf);
Это выдает эту ошибку: error: аргументы метода ref и out могут использоваться только с полями, параметрами, локальными переменными и доступом к элементу массива
Я не могу изменить параметры метода fuseguifs_getattr, потому что это часть того, чего ожидают привязки предохранителей.
Я действительно застрял.Кто-нибудь, как я могу решить это?