2011-05-18 2 views
1

Je fais un système de fichiers en utilisant FUSE, et je sais que j'ai un doute. Lorsque j'utilise la commande "cd" dans le nouveau système de fichiers, elle change pour les répertoires qui n'existent pas. Par exemple, si le répertoire "m" n'existe pas, et que je crée un "cd m", il change pour ce répertoire.Quelle fonction est appelée lors de la modification d'un répertoire dans FUSE?

Quelle est la fonction que FUSE appelle lorsque le répertoire est modifié? Pourquoi l'application fait-elle le problème que je décris?

Merci!

Répondre

1

Implémentez-vous getattr? et si oui, vous assurez-vous de retourner -ENOENT si le chemin qu'ils vous donnent ne correspond pas à un fichier ou un répertoire dans votre système?

+0

Oui, j'applique getattr et je retourne le -ENOENT, mais je faisais quelque chose de mal ... Je vais mettre le code dans une autre réponse. –

+0

Je ne peux pas mettre le code parce que je suis un nouvel utilisateur ... Mais, j'espère que vous pouvez m'aider avec cela ... Quand je change le répertoire courant avec la commande "cd" ... quelle fonction est appelée ? Il me sera très utile d'utiliser une variable pour contrôler le niveau des répertoires ... –

+0

Désolé, je ne sais pas quoi vous dire dans ce cas. J'étais sous l'impression FUSE juste appelé getattr pour voir si le nom tapé par l'utilisateur correspondait à un répertoire. Je ne suis au courant d'aucune autre fonction que j'essaierais si getattr m'indique que l'entrée de répertoire n'existe pas, et j'ai l'impression d'avoir cassé mon installation de FUSE de sorte que je ne peux même pas compiler un simple programme pour le tester. –

Questions connexes