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 :

accès en parallele a un fichier texte


Sujet :

C

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 60
    Par défaut accès en parallele a un fichier texte
    Salut ,
    Est-ce que le langage c permet l'accès en parallèle et en écriture a un fichier texte , cad: plusieurs accès simultané .
    en effet je développe une application dans laquelle je créerai des fichier logs et j'accède par plusieurs processus en écriture a ces fichiers .
    Merci d'avance !

  2. #2
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut
    Qu'est ce que tu entends par simultané?

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2006
    Messages
    60
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 60
    Par défaut
    nous avons la fonction qui ouvre le fichier en écriture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    f_out = fopen(fichier, "a");
    .....
    fclose(f_out);
    avant que le premier processus ferme l'accès ,l'autre ouvre .
    nous aurons deux processus avec fopen

  4. #4
    Membre chevronné Avatar de Tchetch
    Inscrit en
    Mars 2002
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mars 2002
    Messages : 401
    Par défaut
    Salut,

    Tu peux passer tous tes messages de log à un processus qui gère l'écriture vers le fichier, cette solution a l'avantage d'être simple à mettre en place.

    Tu peux peux écrire directement depuis chaque processus, mais il faudra gérer la synchronisation entre les processus, si le deux écrivent en même temps tu peux avoir des trucs comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Ligne de texte process 1
    Ligne de texte process 2
    Ligne de teLigne de texte process 2xte process 1
    Ou finalement tu peux utiliser la méthode prévue par ton système d'exploitation pour les fichiers de log, c'est la méthode la plus simple et la plus rapide à mettre en place. Avec syslog c'est extrêmement simple (encore plus simple que d'écrire dans un fichier texte), sous windows j'ai pas bien compris le pourquoi du comment, mais y a une méthode.

    T.

  5. #5
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 487
    Par défaut
    Citation Envoyé par kh12040 Voir le message
    Salut ,
    Est-ce que le langage c permet l'accès en parallèle et en écriture a un fichier texte , cad: plusieurs accès simultané .
    en effet je développe une application dans laquelle je créerai des fichier logs et j'accède par plusieurs processus en écriture a ces fichiers .
    Merci d'avance !
    Oui, ça marche. Tu auras un curseur par descripteur fichier. J'ajoute que c'est surtout de la responsabilité de l'O.S. de gérer çà, plus que du langage C.

    Attention toutefois à ce que tu veux faire, sinon tu risques de te marcher dessus ! Si ton objectif est de faire un log, ouvre tes fichiers en mode « append » a ou a+ de façon à ce que ce qui s'y écrit soit toujours automatiquement placé en fin de fichier. Ça t'évitera bien des surprises.

  6. #6
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 754
    Par défaut
    Sous UNIX/Linux, les écritures concurrentes à un fichier ouvert en mode append sont "atomiques". Sous Windows, il faut "vérouiller" l'écriture par un flock().
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par kh12040 Voir le message
    Salut ,
    Est-ce que le langage c permet l'accès en parallèle et en écriture a un fichier texte , cad: plusieurs accès simultané .
    en effet je développe une application dans laquelle je créerai des fichier logs et j'accède par plusieurs processus en écriture a ces fichiers .
    Merci d'avance !
    En parallèle, c'est à dire simultané, je pense qu'aucun système grand public n'autorise ça.

    Le C standard ne prévoit pas les accès concurrents.

    Généralement les systèmes fournissent un mécanisme de sérialisation basé sur des verrous (locks, sémaphores) entrainant la suspension de la tâche ou du processus concurrent, provoquant ainsi une mise en série des accès.

    En principe, quand on a une ressource unique, on se débrouille pour les accès soient sérialisés en amont (tâche unique, messagerie etc.). C'est un problème de conception.

Discussions similaires

  1. accès rapide à un fichier texte volumineux
    Par Shrine dans le forum C++
    Réponses: 2
    Dernier message: 12/03/2007, 16h25
  2. écrire dans un fichier texte / bloquer accès http
    Par superseba888 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 6
    Dernier message: 24/08/2006, 02h11
  3. écrire dans un fichier texte / bloquer accès http
    Par superseba888 dans le forum Access
    Réponses: 2
    Dernier message: 23/08/2006, 15h23
  4. Question bête: accés concurent à un fichier texte
    Par djynwk dans le forum Langage
    Réponses: 6
    Dernier message: 26/07/2006, 00h54
  5. Export Table Acces vers fichier Texte
    Par ston dans le forum Access
    Réponses: 2
    Dernier message: 04/04/2006, 17h21

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