Accueil > Forum > > > > ouvir un fichier à partir d'un inode
ouvir un fichier à partir d'un inode
jeudi 31 août 2006 à 23:37:48 |
ouvir un fichier à partir d'un inode

nico_fip1
|
Bonsoir, Je travaille actuellement sur un système QNX (type UNIX et POSIX) Si j'ai bien compris, les fichiers d'un dossiers sont gérés par une liste chainée. En effet, lorsque je fais un char[100] sFicher ; for(i=0;i<10000;i++) { sprintf(sFichier,"%d.txt", i) FILE* fichier=fopen(sFichier); fclose(fichier); }l'opération est de plus en plus longue. j ai découvert une librairie, <dirent.h>, avec laquelle je peux parcourir, succecivement, tous les fichiers d'un dossier. Je récupère alors l'Inode du fichier. Est il possible, à partir de ce Inode, d'ouvrir le fichier dans repasser par le nom et la fonction fopen ? Merci d'avance pour votre réponses. NicoStrasbourg France
|
|
vendredi 1 septembre 2006 à 01:39:38 |
Re : ouvir un fichier à partir d'un inode

AlexN
|
un inode ou index node est une structure de données contenant les propriétés d'une entrée dans le système de fichier. A un fichier ou référence (path) correspond un et un seul inode. Par contre à un inode correspond 1 à n références (regardes la fonction ln). Par conséquent, si on utilisait les inodes avec les primitives de manipulation de fichier (fopen...), le système ne saurait pas quelle référence (fichier) utiliser.
|
|
vendredi 1 septembre 2006 à 01:46:25 |
Re : ouvir un fichier à partir d'un inode

AlexN
|
Pardon de 0 à n et non de 1 à n, un inode peut exister sans qu'il corresponde à une reférence dans le système de fichier.
|
|
vendredi 1 septembre 2006 à 08:39:14 |
Re : ouvir un fichier à partir d'un inode

nico_fip1
|
Merci pour cette réponse....
Si j'ai bien compris, on a 1 inode pour 1 fichier (fichier = données palcées physiquement sur le disque).
Le fonction "opendir" de la librairie <dirent.h>, me retourne une structure "dossier" à partir de laquelle, je peux appeler la fonction "readdir". Celle ci, appelée en boucle, va avancer dans le dossier, en me donnant une structure sur un fichier. Cette structure "dirent" comprorte entre autre, comme champs, le nom du fichier et son inode.
Si de là, je fais appel à la fonction fopen, le système va refaire la correspondance entre le nom du ficher, et son inode, pour retouver l'emplacement physique. N'est-il donc pas possible, d'ouvrir un fichier directement avec l'inode, pour éviter cette manipulation ?
Si mon explication est fausse, n'hésitez pas à me le signaler; et si vous avez des liens expliquant les système sde fichiers.
Merci
Nico Strasbourg France
|
|
vendredi 1 septembre 2006 à 11:19:32 |
Re : ouvir un fichier à partir d'un inode

AlexN
|
Nope,
A une inode peut correspondre 0 à n référence (chemin menant à un fichier). La même inode peut être référencée par plusieurs chemins dans le système de fichier. Exemple, soit le fichier : /home/machin/toto.txt on tape la commande suivante : ln toto.txt toto2.txt Si on fait un ls -al, on se retrouve avec deux fichiers aux caractéristiques et au contenu identiques. Et si on modifie toto2.txt, on modifie toto.txt. Car les deux références correspondent à la même inode. Par contre à toto.txt ne correspond qu'une et une seule inode, et à toto2.txt correspond une et une seule inode. Et en fait c'est la même inode pour les deux. La propriété des inodes fait que les deux références sont totalement équivalentes mais "indépendantes" (d'un point de vue référence, pas concernant les blocs de données) : rm toto.txt Il ne reste plus que toto2.txt. On n'a pas supprimé l'entrée d'inode car il reste encore une référence sur elle (toto2.txt)
Le fonction "opendir" de la librairie <dirent.h>, me retourne une structure "dossier" à partir de laquelle, je peux appeler la fonction "readdir". Celle ci, appelée en boucle, va avancer dans le dossier, en me donnant une structure sur un fichier. Cette structure "dirent" comprorte entre autre, comme champs, le nom du fichier et son inode.
Oui
Si de là, je fais appel à la fonction fopen, le système va refaire la correspondance entre le nom du ficher, et son inode, pour retouver l'emplacement physique.
Oui
N'est-il donc pas possible, d'ouvrir un fichier directement avec l'inode, pour éviter cette manipulation ?
Toujours pas puisque qu'à une inode peut correspondre plusieurs références. Ainsi avec l'exemple precédent, si fopen acceptait comme paramètre l'inode, quel fichier faudrait-il ouvrir ? toto.txt ou toto2.txt ? Tandis que fopen(toto.txt), le système sait de quel fichier il s'agit (il a sa vrai référence d'un point de vue utilisateur).
Consultes le fichier d'entête sys/types.h ou sys/stat.h pour la structure d'une inode. Consultes le fichier d'entete dirent.h pour plus d'infos sur la structure dirent. Rien ne vaut un petit détour dans les sources du noyau pour comprendre.
|
|
Cette discussion est classée dans : fichier, partir, fichiers, ouvir, inode
Répondre à ce message
Sujets en rapport avec ce message
problèmes liens entre fichiers C et C++ dans un projet Visual C++ 6.0 [ par nico ]
J'ai récupéré un projet contenant des fichiers écrits en C. Le fichier "principal" de ce projet également écrit en C fait appel à des fonctions se tro
créer un arbre à partir d'un fichier word [ par yeager ]
Bonjour je suis nouveau et débutant en langage CJe souhaite pouvoir lire un fichier word comportant des informations sur plusieurs livres. A partir de
Lancer un autre fichier à partir d'un prog en C++ [ par trinitacs ]
J'aimerai lancer un .bat à partir de mon prog en C++. Coment dois-je faire?Est-ce que le .bat peut s'éxécuetr de manière différentes suivant la manièr
[Visual C++] Aide fichiers exe [ par WarioZ ]
bonjour a tous,je débute en C++ et j'ai un probleme avec les fichiers exe que je cree a partir de mes codes sources...Quand je les execute a partir de
pb visual c++ fichiers [ par pichu ]
dans une fonction de visual j'ouvre un fichier fstream en lecture. Ce fichier contient des informations. Mais ca me renvoie true quand j'affiche le ré
aide sur les fichiers [ par dickymoe ]
VinceExiste-t-il une fonction permettant de savoir si un fichier existe ?et une autre permettant de savoir si un fichier est vide ?merci
créer un fichier .mdb à partir d'un pg Cplus plus [ par cvi ]
Créer un fichier .mdb vierge et l'enregistrer dans l'arborescence à partir d'un bouton. Est ce que je pourrai avoir les lignes de code SVP.Merci et à
recherche fichiers executables et comparaisons [ par limsa033 ]
Bonsoir,je cherche à lister tous les fichiers executables d(un disque dur ainsi que leur principales caractéristiques(nom,chemin et taille et date de
problème avec fichiers !!! [ par ben01n ]
salut tout le mondeje prog sous linux et j'aurais besoin d'aide pour un de mes programmes dont j'ai déposé la source sous le nom "client-serveur en ud
Acquisition de Données a partir d'un fichier texte [ par madcow41 ]
'lutBon j'ai un fichier qui contient des lignes formées ainsi :123.145.569.188 - - [12/Apr/2001:00:08:49 +0200] "GET /pagehtml.htm HTTP/1.x" et le res
Livres en rapport
|
Derniers Blogs
[MIX 2010] - TELECHARGEZ INTERNET EXPLORER 9 EN PREVIEW ![MIX 2010] - TELECHARGEZ INTERNET EXPLORER 9 EN PREVIEW ! par redo
La Preview de Windows Explorer 9 est maintenant disponible à l'adresse suivante : http://ie.microsoft.com/testdrive/ Cette version ne nécessite pas un redémarrage de votre machine pour être exploitée . Cette version est fonctionnelle mais reste cependant ...
Cliquez pour lire la suite de l'article par redo [MIX 2010] - KEYNOTE DAY 2 ONLINE : WINDOWS INTERNET EXPLORER 9, JQUERY, ODATA ET DALLAS CTP2 ![MIX 2010] - KEYNOTE DAY 2 ONLINE : WINDOWS INTERNET EXPLORER 9, JQUERY, ODATA ET DALLAS CTP2 ! par redo
Dans la lignée du premier keynote, retrouvez la vidéo du second keynote en ligne : Visionnez la vidéo à l'url suivante : http://www.microsoft.com/presspass/events/mix/VideoGallery.aspx Vous y retrouverez ainsi les speakers Scott Guthrie, Dean Hachamovitch...
Cliquez pour lire la suite de l'article par redo [MIX 2010] - RETOUR D'EXPéRIENCE DéVELOPPEMENT SEESMIC SUR WINDOWS PHONE 7[MIX 2010] - RETOUR D'EXPéRIENCE DéVELOPPEMENT SEESMIC SUR WINDOWS PHONE 7 par redo
En avant première, Loic le retour d'expérience de Loïc Le Meur du portage de l'application http://seesmic.com/ sur plateforme Windows Phone 7 . c'était d'ailleurs une des rares opportunités de tester, voir toucher le nouveau device . voyez par vous-même :...
Cliquez pour lire la suite de l'article par redo [MIX 2010] - LE KEYNOTE DAY 1 DISPONIBLE ONLINE ![MIX 2010] - LE KEYNOTE DAY 1 DISPONIBLE ONLINE ! par redo
Si tout comme moi, vous avez manqué de peu le premier keynote du Microsoft Mix 2010, je vous invite à prendre deux heure et le consulter ci-dessous . Visionnez le Keynote à l'url suivante : http://www.microsoft.com/Presspass/events/mix/videoGallery.aspx?c...
Cliquez pour lire la suite de l'article par redo VISUAL STUDIO TALK SHOW: EF4VISUAL STUDIO TALK SHOW: EF4 par Matthieu MEZIL
La semaine dernière, j'étais à Montréal pour y animer des conférences sur Entity Framework. J'en ai profité pour enregister un podcast Visual Studio Talk Show que vous pouvez retrouver ici ....(read more) ...
Cliquez pour lire la suite de l'article par Matthieu MEZIL
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
|