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

MFC Discussion :

Accès concurrentiels fichier


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Août 2002
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 26
    Par défaut Accès concurrentiels fichier
    Bonjour à tous,

    je dois lire et écrire dans un fichier. J'ai quelques questions car je ne sais pas comment faire :

    Qu'existe t-il comme solutions ?
    - je connais le principe du sémaphore qui bloque le fichier pendant l'écriture mais existe t-il mieux ?
    Qu'est ce qui est le plus simle de mise en oeuvre ?
    Connaissez vous des tutorials ou docs traitant de ce sujet ?

    Merci pour vos retours.
    Ludoman

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Avril 2005
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2005
    Messages : 87
    Par défaut
    Salut,

    si tu utilises les MFC :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CFile *file = new CFile("fichier.txt", CFile::modeCreate | CFile::modeReadWrite | CFile::shareExclusive); // CFile::shareExclusive empêche l'accès d'autres processus à ce fichier
    file->Write(...);
    file->Read(...);
    avec l'API windows, je te conseille ce tutoriel : http://bob.developpez.com/tutapiwin/ : chapitre 4.
    Si tu créé ton handle avec le 3ème paramètre de CreateFile à 0, tu empêches l'accès d'autres processus au fichier, ex :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    handleLogFile = CreateFile(m_strFilename, GENERIC_WRITE|GENERIC_READ, 0, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

  3. #3
    Membre averti
    Inscrit en
    Août 2002
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 26
    Par défaut
    merci pour ta réponse,

    oui j'utilise les MFC et je peux faire comme tu indiques.

    Peut on utiliser des pipe dans ce cas là ? Y a t il un intéret supplémentaire à la gestion de fichiers ?

    En fait je voudrais aussi récupérer la notification que ce fichier a été sauvegardé, y a t il un évènement pour cela ?

    Sinon je ne sais pas comment mettre mon processus en attente jusqu'à ce que le fichier soit libéré, à moins de faire des boucles temporelles et de vérifier l'accès toutes les secondes par exemple mais n'est ce pas trop consommateur de ressources ?

    Merci de votre aide.
    Ludoman

Discussions similaires

  1. [VB.NET] Accès concurrentiel aux fichiers
    Par david71 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 13/12/2004, 11h19
  2. Restreindre l'accès des fichiers..
    Par Neilos dans le forum Windows
    Réponses: 6
    Dernier message: 25/08/2004, 00h22
  3. [Tomcat]Droit d'accès aux fichiers créés par une servlet
    Par loulouleboss dans le forum Tomcat et TomEE
    Réponses: 7
    Dernier message: 15/07/2004, 14h32
  4. [Access] Accès concurrentiels
    Par Benjamin GAGNEUX dans le forum Bases de données
    Réponses: 4
    Dernier message: 12/07/2004, 17h56
  5. [Réseau] Autorisations d'accès aux fichiers
    Par Pedro dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 19/05/2004, 13h43

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