FUSE: мне нужно проверять существование файла /dir в create/mkdir?

Я реализую файловую систему на основе FUSE (собственно, osxfuse, поскольку она на Mac), и я заметил, что перед вызовом create или mkdir всегда вызывается getattr, а если узел уже существует, create/mkdir не вызывается. Вопрос в том, могу ли я полагаться на это поведение и не проверять существование в create/mkdir?

1 ответ

Решение

В любом случае, я бы лучше проверил существование файла, потому что (a) поведение ОС может измениться в будущем (т. Е. Ваше упрощение сыграет низкую роль позже), и (b) часто существует вероятность того, что файл будет создан за пределами вашей FS на Ваше внутреннее хранилище. В последнем случае вы полагаетесь на состояние, которое не является более действительным.

Другие вопросы по тегам