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

 C Discussion :

Ecrire dans un fichier avec une fonction itérative.


Sujet :

C

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Points : 73
    Points
    73
    Par défaut Ecrire dans un fichier avec une fonction itérative.
    Salut à tous,

    J'ai une grosse fonction qui utilise plusieurs itérations à cause des traitements qu'elles réalisent sur mes donnés.
    Je dois stocker ces données dans un fichier, mais vu que toutes mes fonctions sont rappelées plusieurs fois et qu'au finale jai une fonction qui contient mes données dans une liste chainée, comment écrire ces données dans un file descriptor, sans l'ouvrir plusieurs fois, surtout que mon write() ou fwrite() échoue et fait parfois même segfaulter mon programme.
    En gros, comment faire une fonction qui reçoit plusieurs chaines de caractères (On appel plusieurs fois cette fonction pour lui envoyer la chaine de caractère en paramètre) et qui va stocker chaque chaînes dans un fichier?

    Merci de votre aide, A+

  2. #2
    Expert éminent sénior
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Points : 13 926
    Points
    13 926
    Par défaut
    J'ai rien compris à ce que tu souhaites faire !

  3. #3
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Septembre 2007
    Messages
    7 400
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 400
    Points : 23 785
    Points
    23 785
    Par défaut
    Citation Envoyé par katcha95 Voir le message
    En gros, comment faire une fonction qui reçoit plusieurs chaines de caractères (On appel plusieurs fois cette fonction pour lui envoyer la chaine de caractère en paramètre) et qui va stocker chaque chaînes dans un fichier?
    Le plus propre consiste à ouvrir le fichier en amont de l'appel à ta fonction, de le refermer en fin de programme et, entre les deux, de passer le descripteur de fichier à ta fonction en tant qu'argument, en même temps que ta chaîne.

    Si ta fonction a besoin de « retenir » son état, dû aux appels précédents, tu peux éventuellement utiliser une variable statique à l'intérieur.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Points : 73
    Points
    73
    Par défaut
    Salut Obsidian,

    Merci pour ta réponse, j'ai déjà pensé à cette solution, mais le write() échoue, je pense qu'il ne retrouve pas le file descriptor, mais ton idée de static sur mon file descriptor ouvert est intérressante, je test et je te tiens au courant.
    Encore merci, A+

  5. #5
    Membre émérite Avatar de SofEvans
    Homme Profil pro
    Développeur C
    Inscrit en
    Mars 2009
    Messages
    1 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 078
    Points : 2 339
    Points
    2 339
    Par défaut
    Si tu veux passer plus ou moins de valeur a ta fonction (un peu comme scanf, printf, ...), tu peux regarder ici :

    http://www.cprogramming.com/tutorial/c/lesson17.html

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Points : 73
    Points
    73
    Par défaut
    Salut SoftEvans,

    Merci pour ta réponse, je connaît très bien les arguments variables, mais je ne vois pas comment ça peux résoudre mon problème d'écriture sur un même File Descriptor, sachant que la fonction qui contient les données à écrire est itérative.

    A+

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 148
    Points : 73
    Points
    73
    Par défaut
    Ayé, le problème est résolut, la solution est celle de Obsidian, il fallait tous simplement ouvrir le fichier en amont et renvoyer à chaque fois le file descriptor avec la chaîne à ma ptite fonction(), bon sa m'écrit toujours un caractère bizarre à la fin du fichier mais rien de méchant, je vais essayer de trouver d'ou cela provient, merci à tous, A+

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

Discussions similaires

  1. [XL-2007] Ecrire dans plusieurs cellules avec une fonction
    Par seblenor dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 04/04/2013, 22h00
  2. ecrire dans un textarea avec une fonction
    Par nico le noob dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 15/05/2010, 16h46
  3. Réponses: 5
    Dernier message: 12/03/2010, 11h03
  4. Ecriture dans un fichier avec la fonction AWK
    Par tux2005 dans le forum Linux
    Réponses: 2
    Dernier message: 21/07/2005, 10h58
  5. enregistrer dans un fichier avec une appli mdi
    Par ferrari dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2002, 15h17

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