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.
Mes questions:
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);
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
Partager