Utilisation de fuse - C - Programmation
Marsh Posté le 09-05-2008 à 20:58:54
Peux-tu poster le code de la fonction qui provoque l'erreur ?
Marsh Posté le 09-05-2008 à 21:01:04
Code :
|
Marsh Posté le 09-05-2008 à 21:02:51
Ici les modifications sont apportees sur l'inode qui reference le fichier sur mon disque.
Marsh Posté le 09-05-2008 à 21:28:34
Bon je ne suis pas allé très loin dans l'analyse, mais il y a déjà un gros truc qui ne va pas : tu stockes des données dans name_search à coup de strncpy(), mais cette variable pointe sur NULL, tu ne lui as pas alloué de mémoire.
Normalement, ça sort en coredump à cet endroit.
edit : je me suis permis de mettre ton code entre balises [code=cpp ][/code ] (sans les espaces), pour le rendre lisible.
Marsh Posté le 09-05-2008 à 21:31:24
Je n'avais pas remarque, je corige et je te dirai si c'etait ca le probleme.
Marsh Posté le 09-05-2008 à 21:35:44
Code :
|
Marsh Posté le 09-05-2008 à 21:39:05
J'ai mis la variable name_search en un tableau de 32 char. J'ai pour le moment limite la taille des noms.
J'ai toujours la meme erreur.
kirouani@debiankirouani:~/Desktop/klmp$ ./bin/klmp /tmp/klmp.fuse/ /*Monte mon fichier*/
kirouani@debiankirouanitmp/klmp.fuse$ chmod 777 ./
chmod: modification des permissions de `./': Le logiciel a provoqué l'abandon de la connexion.
/tmp/klmp.fuse est mon point de montage.
Marsh Posté le 09-05-2008 à 22:00:14
Je repete que le probleme n'a lieu que lorsqu'il y a une modification sur le disque.
Un ls ou un cd fonctionne et ne provoque pas d'erreur.
Marsh Posté le 10-05-2008 à 10:01:20
Citation : current = root; |
Je n'ai pas vu cette variable root declarée dans la fonction. Tu bosses avec de l'effet de bord pour ce genre de fonction? Tu aimes vivre dangereusement alors...
A+,
Marsh Posté le 10-05-2008 à 12:13:51
root correspondant a l'inode contenant le repertoire racine.
Il est vrai que je code a l'arrache pour le moment.
Je vais corriger tout ca.
Marsh Posté le 28-05-2008 à 22:11:52
Desole, ca fait longtemps que je ne me suis pas connecte examen oblige.
Poue le projet c'est pas mal avance, l'erreur etait du a une seg fault du a une vieille version d'un fichier c que j'utilisait.
C'est la premiere fois que j'utilise svn.
J'ai pas mal avance sur le projet, il ne reste plus qu'un leger probleme.
Il a lieu lorsque j'essaie d'ecrire sur un fichier non vide(ecrit avec vi.), La premiere fois il n'y a aucun probleme.
Lors de la sauvegarde (:w) il me repond erreur E212 impossible d''ouvrir le fichier pour y ecrire, pourtant le fichier ouvert possede les bon droits. Si je sauvegarde avec :w! les données ont bien ete ecrite.
Si quelqu'un sait d'ou ca peut venir faites moi signe.
Marsh Posté le 09-05-2008 à 20:57:28
Bonjour, j'ai un projet de systeme.
Le but est de creer un systeme de fichier que l'on doit monter avec fuse.
Pour tester notre systeme de fichier on utilise un fichier ordinaire qui sera notre disque physique.
J'ai fait la gestion du disque.
Le probleme est lorque je monte mon disque avec fuse. Des que j'effectue une modification sur mon disque, j'obtient une erreur " Le logiciel a provoque l'abandon de la connexion", cependant la modification est bien effectue sur mon disque.
Lorque j'ai cette erreur il m'est alors impossible de remonter le disque.
Le projet est fait en C, j'utilise une debian etch, et comme compilateur gcc.
Si quelqu'un a deja manipule fuse et qui sait d'ou peut venir cette erreur, une aide serait la bienvenue.
Mes recherche sur google n'ont pas ete fructueuses.
Pour plus d'info, n'hesitez pas a poser des question.
Merci d'avance.