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

Bibliothèque standard C Discussion :

écriture circulaire sur un disque


Sujet :

Bibliothèque standard C

  1. #1
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2007
    Messages
    630
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2007
    Messages : 630
    Points : 234
    Points
    234
    Par défaut écriture circulaire sur un disque
    Bonjour,

    J'aimerais stocker des logs dans un disque dur, en utlisant la bibliothèque I/O offerte par C. Les anciens logs seront écrasés par les nouveaux logs qui arrivent s'il n'y a plus de place.
    J'écris les logs à intervalle régulier (toutes les 5mn). Je les nomme par leurs dates de création respectives. On doit pouvoir les lire à tout moment.

    Le problème est similaire à celui d'archivages de paquets par wireshark, en utilisant fopen, fclose, pcap_dump, etc...
    Dans le code de wireshark, on crée un nouveau fichier, on le remplit puis on le ferme, ainsi de suite. Je ne vois pas dans leur code à quel moment le plus ancien fichier est écrasé par le nouveau (buffer circulaire).

    Voici le bout de code de wireshark pour ceux qui sont intéressés (http://code.metager.de/source/xref/w...uf_open_file):. ws_open ici permet d'ouvir un nouveau fichier pour les nouveaux logs qui arrivent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    123  rb_data.fd = ws_open(rfile->name, O_RDWR|O_BINARY|O_TRUNC|O_CREAT,
    124                            rb_data.group_read_access ? 0640 : 0600);
    Mes questions:
    1) Est ce que c'est bien le système qui s'occupe de l'écrasement
    2) si 1) est vrai alors est ce que les flags O_RDWR|O_BINARY|O_TRUNC|O_CREAT jouent un role essentiel dans l'écrasement ?

    Merci d'avance pour votre aide

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 860
    Points : 219 062
    Points
    219 062
    Billets dans le blog
    120
    Par défaut
    Bonjour,

    Je ne vois pas en quoi c'est un tampon circulaire, mais plutôt : un fichier que l'on écrase à chaque nouvelle ouverture.
    Oui, c'est bien les options qui indiquent ce comportement, voir le man de open.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

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

Discussions similaires

  1. Perl : écriture sur le disque du serveur IIS
    Par lesouriciergris dans le forum IIS
    Réponses: 4
    Dernier message: 05/07/2007, 13h44
  2. Lecture / écriture d'objets sur le disque dur ?
    Par miria.vhg dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 06/02/2007, 15h21
  3. VISTA Droits d'écriture sur le disque
    Par MONTIAS dans le forum Windows Vista
    Réponses: 1
    Dernier message: 29/11/2006, 15h47
  4. [MFC] Notification d'écriture sur le disque
    Par Yellowmat dans le forum MFC
    Réponses: 1
    Dernier message: 28/06/2005, 12h00
  5. Réponses: 7
    Dernier message: 08/06/2005, 11h04

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