Touch вызывает ошибку ввода/вывода в связи с libfuseLinux

Ответить
Anonymous
 Touch вызывает ошибку ввода/вывода в связи с libfuse

Сообщение Anonymous »


Я пытаюсь создать прокси-сервер с дополнительной проверкой разрешений. Появится диалоговое окно с вопросом, разрешено ли выполнение операции.

Источники: https://sourceforge.net/projects/secure-home/

Проблема была в контактной команде. Я читал в документации, что есть только один способ ответить на запрос закрытия: предохранитель_reply_err. Я установил ошибку на 0. Когда я удаляю строку Fuse_reply_err(req, 0), запрос так и не был выполнен. Документация: https://libfuse.github.io/doxygen/struc ... d83b59deff (см. объявление функции выпуска). Кроме того, во многих примерах в Интернете авторы делают то же самое (возвращают 0 ошибок). Проблема связана с сенсорной командой, которая возвращает «Невозможно закрыть файл: ошибка ввода/вывода». Я смотрю исходники coreutils touch: https://github.com/Coreutils/Coreutils/ ... rc/touch.c. Сообщение было напечатано, когда close вернуло ненулевое значение. Я прочитал документацию, и объявление закрытия выглядит так:

int close(int fd) Итак, он возвращает int, и в документации сказано, что в случае успеха он должен возвращать 0. Но я не знаю, как вернуть 0 в результате

void(* предохранитель_lowlevel_ops::release) (fuse_req_t req, плавкий_ино_t ino, struct плавкий_файл_информация *fi) Мой код выглядит так:
static void sechome_close(fuse_req_t req, плавкий_ино_t ino, struct плавкий_файл_информация *fi) { struct sh_inode *inode = get_real_inode(ino); --inode->ref_count; если (0 == индексный дескриптор->ref_count) { закрыть (фи->fh); } Fuse_reply_err (требуется, 0); }
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Linux»