Question

J'essaie actuellement d'obtenir un inode pour un chemin donné dans une fonction du noyau. Tout ce qui me reste à disposition est le chemin complet. J'ai essayé des tentatives comme:

user_path_at(AT_FDCWD, buffer, LOOKUP_FOLLOW, &path);

Mais le dentry dans ce chemin donné n'est pas valide, il semble se révéler. Ensuite, j'ai pensé peut-être essayer stat () et obtenir le numéro d'inode à partir de cela. Cependant, cela ne me donne qu'un nombre, pas un struct inode. Je ne connais pas de moyen de convertir un numéro d'inode en inode sans récupérer un inode existant et parcourir la liste complète des inodes. Et je ne sais même pas si cela fonctionnerait. Mais je ne veux certainement pas faire cela.

Existe-t-il un moyen simple d'obtenir un inode de structure à partir d'un nom de chemin char * dans le noyau?

Était-ce utile?

La solution

Il n’existe pas de solution simple puisque struct inode fait partie du noyau et que vous êtes dans l’espace utilisateur. Tout dépend de la mise en œuvre du système de fichiers. Êtes-vous sûr que les informations contenues dans la structure statistique ne suffisent pas à vos besoins?

Quoi qu'il en soit, ce lien pourrait vous aider.

Autres conseils

stat () vous donnera l'inode d'un fichier dans le champ " st_ino ". champ.

Désolé, incompréhension initiale de la question.

Si vous voulez que la structure d’inodes dans le noyau soit réelle, je suis presque certain que le noyau lui-même n’ira pas dans un tableau ou une liste à la recherche du numéro d’inode (à moins que la liste ne soit très petite). Le code du noyau étant publiquement disponible, vous devriez être en mesure de savoir comment il le fait, puis procédez de même.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top