IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Probleme de création de fichier dans un fs


Sujet :

Linux

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 44
    Points : 26
    Points
    26
    Par défaut Probleme de création de fichier dans un fs
    Bonjour,

    Je suis étudiant et je doit faire un fs permettant de simuler une calculatrice tres basique sur un noyau 2.4.20.

    Le fs tourne bien j'arrive a faire tout ce qui m'interesse a un point de détails la création de fichier.

    Je m'explique tous les dossier et fichiers sont générés automatiquement (les chiffres et les operateurs), mais il me reste a donner a l'utilisateur la possibilité de créer un fichier zmemory pour stocker les calculs.

    J'ai donc naivement implémenté la fonction create de mon inode operations avec un printk m'indiquant que je passe par la.

    Probleme je n'y passe pas pour une sombre raison de permission. Par contre je passe deux fois dans mon lookup.

    Je pense que mon probleme viens de mon lookup. Je renvoi toujours null mais j'ai lu des doc indiquant qu'il fallait renvoyer un dentry negatif dans le cas d'un fichier non trouvé.

    Voici le code de mon lookup :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    struct dentry * my_lookup (struct inode * dir,struct dentry * den){
      printk("<1>my lookup\n");
      int mode;
      struct inode *in;
      if (den->d_name.name[0] == 'e' || den->d_name.name[0] == 'z') {
        mode = S_IFREG|0755;
      }
      else {
        mode = S_IFDIR|0755;
      }
      if (den->d_name.name[0] != 'z') {  
        in = make_inode(dir->i_sb, mode, make_data(dir->u.generic_ip, den->d_name.name[0]));
      }
      else {
        printk("<1>creation fichier Z\n");
        if (memory != NULL)
          in = memory;
        else {
          //in = memory = make_inode(dir->i_sb, mode, NULL);
        }
      }
      if (den->d_name.name[0] != 'z' || memory != NULL)
        d_add(den, in);
      return NULL;
    Désolé si mon code vous semble tres naif c'est le premier fs que je fait et je me suis grandement inspiré de ramfs.

    Je vous remercie d'avance pour toute l'aide que vous pourrez m'apporter.
    Je me tiens a votre disposition pour tout renseignements suplémentaires.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    44
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 44
    Points : 26
    Points
    26
    Par défaut
    Pour information,
    si quelqu'un rencontre le meme probleme dans le lookup il faut quand meme faire un d_add mais avec comme valeur d'inode NULL.

    De plus le mode de creation devait etre 777 au lieu de 755 mais je n'ai pas affiné la chose ca marche c'est l'essentiel et plus trop le temps de faire plus

    En espérant que cela aide quelqu'un un jour

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme de création de fichiers avec une boucle
    Par bobo696 dans le forum Débuter
    Réponses: 3
    Dernier message: 19/01/2009, 14h45
  2. probleme de création de fichier .iso
    Par nabians dans le forum Autres Logiciels
    Réponses: 5
    Dernier message: 29/07/2007, 13h15
  3. Droits création-écriture fichier dans répertoire
    Par BATiViR dans le forum Delphi
    Réponses: 7
    Dernier message: 02/07/2007, 13h27
  4. probleme de création de variable dans une boucle
    Par misterweb dans le forum Langage
    Réponses: 2
    Dernier message: 16/01/2007, 19h21
  5. création de fichiers dans le disque dur
    Par sex-sansbol dans le forum ASP
    Réponses: 6
    Dernier message: 24/08/2004, 09h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo