SETBUF |
Fixer le tampon |
---|---|
Langage C | stdio.h |
Syntaxe
void setbuf(FILE *ptrfichier,char *tampon); |
Paramètres
Nom | Description |
---|---|
ptrfichier | Ce paramètre permet d'indiquer l'identificateur de fichier |
tampon | Ce paramètre permet d'indiquer le tampon de données devant être écrit |
Description
Cette fonction permet de créer un tampon de fichier.
Algorithme
MODULE SETBUF(stream, buffer) SI stream est NULL ALORS * Flux invalide RETOURNE ERROR_INVALID_STREAM FIN SI SI buffer est NULL ALORS * Désactiver le tampon ou passer en mode tampon par défaut set_buffering_mode(stream, mode=UNBUFFERED) SINON * Configurer un tampon utilisateur set_buffering_mode(stream, mode=FULL_BUFFERED) assign_buffer_to_stream(stream, buffer) FIN SI |
Remarques
- Contrôle du tampon : setbuf permet de contrôler le comportement du tampon des flux de données de fichiers. Par défaut, les flux de données peuvent être complètement tamponnés, ligne par ligne, ou non tamponnés, selon leur type et le contexte d'exécution. En fournissant un tampon personnalisé, les développeurs peuvent optimiser les performances en adaptant la taille et le type de tampon aux besoins spécifiques de l'application.
- Tampon automatique vs manuelle : L'utilisation de setbuf remplace le mécanisme de tamponnement automatique géré par la bibliothèque standard. En fournissant un tampon personnalisé, on peut mieux contrôler la gestion de la mémoire et réduire les appels système coûteux en regroupant les opérations d'écriture ou de lecture. Cela peut être particulièrement avantageux dans des applications nécessitant des performances optimisées, comme les serveurs ou les programmes manipulant de grands volumes de données.
- Remplacement des tampons par défaut : Lorsque setbuf est appelée avec un tampon non NULL, elle remplace le tampon interne par le tampon fourni par l'utilisateur. Cela permet de définir des tailles de tampon personnalisées ou d'utiliser des tampons pré-alloués pour réduire les allocations dynamiques, améliorant ainsi l'efficacité mémoire et les performances globales du programme.
- Compatibilité et Portabilité : setbuf est une fonction standard du langage de programmation C, définie par la norme ISO C. Elle est donc portable et disponible sur toutes les plateformes compatibles avec le langage de programmation C. Cependant, le comportement exact peut varier légèrement selon les implémentations de la bibliothèque standard, notamment en ce qui concerne les tailles de tampon par défaut et les optimisations internes.
- Utilisation séquentielle et le moment d'utilisation : Il est crucial d'appeler setbuf avant toute opération d'entrée/sortie sur le flux de données concerné. Si des opérations d'entrées/sorties sont effectuées avant de définir le tampon, le tampon fourni par setbuf ne sera pas pris en compte, et le flux de données utilisera le tampon par défaut. Cette séquence doit être respectée pour garantir que le tampon personnalisé est effectivement utilisé tout au long des opérations d'entrée/sortie.
- Limitations et alternatives : setbuf est relativement simple et ne permet pas de définir des comportements de tamponnement avancés, comme le contrôle fin du tampon (plein tampon, tamponnement ligne par ligne,...). Pour des contrôles plus sophistiqués, il est recommandé d'utiliser setvbuf, offrant plus de flexibilité en permettant de spécifier le type de tamponnement et la taille du tampon avec plus de précision.
- Gestion des ressources et sécurité : Lors de l'utilisation de setbuf, il est important de s'assurer que le tampon fourni reste valide pendant toute la durée d'utilisation du flux de données. Fournir un pointeur vers un tampon local ou libéré peut entraîner des comportements indéfinis, y compris des corruptions de mémoire ou des plantages. De plus, l'utilisation de tampons statiques ou dynamiquement alloués doit être gérée avec soin pour éviter les fuites de mémoire et assurer la sécurité du programme.
Voir également
Langage de programmation - C - Référence de procédures et fonctions - fflush
Langage de programmation - C - Référence de procédures et fonctions - fopen
Langage de programmation - C - Référence de procédures et fonctions - fseek
Langage de programmation - C - Référence de procédures et fonctions - setvbuf
Langage de programmation - C++ - Référence de procédures et fonctions - setbuf
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 734.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 228.
Dernière mise à jour : Mardi, le 28 juillet 2015