English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
C Standard Library - <stdio.h>
Fonction de bibliothèque C int setvbuf(FILE *stream, char *buffer, int mode, size_t size) Définir comment le flux stream doit être tamponné.
Voici la déclaration de la fonction setvbuf().
int setvbuf(FILE *stream, char *buffer, int mode, size_t size)
Mode | Description |
---|---|
_IOFBF | Tampon complet:Pour la sortie, les données sont écrites en une seule fois lorsque le tampon est plein. Pour l'entrée, le tampon est rempli jusqu'à ce qu'il rencontre une demande d'entrée et que le tampon soit vide. |
_IOLBF | Tampon par ligne:Pour la sortie, les données sont écrites dès qu'elles rencontrent un retour chariot ou que le tampon est plein, selon le cas. Pour l'entrée, le tampon est rempli jusqu'à ce qu'il rencontre le prochain retour chariot lorsque la demande d'entrée est effectuée et que le tampon est vide. |
_IONBF | Sans tampon:Ne pas utiliser de tampon. Chaque I/Les opérations O sont écrites immédiatement. Les paramètres buffer et size sont ignorés. |
Si la fonction réussit, elle renvoie 0, sinon elle renvoie une valeur non nulle.
L'exemple suivant montre l'utilisation de la fonction setvbuf().
#include <stdio.h> int main() { char buff[1024]; memset( buff, '\0', sizeof( buff )); fprintf(stdout, "Activer le mode tampon complet\n"); setvbuf(stdout, buff, _IOFBF, 1024); fprintf(stdout, "Voici oldtoolbag.com\n"); fprintf(stdout, "Cette sortie sera sauvegardée dans buff\n"); fflush( stdout ); fprintf(stdout, "Cela se produira pendant la programmation\n"); fprintf(stdout, "Le sommeil de cinq secondes est terminé\n"); sleep(5); return(0); }
Laissez compiler et exécuter le programme ci-dessus, cela produira les résultats suivants. Ici, le programme sauvegarde la sortie tampon dans buffuntil the first call fflush() Then start buffering output, and finally pause 5 Seconds. It will send the remaining output to STDOUT before the program ends.
Enable full buffering Here is oldtoolbag.com This output will be saved to buff This will occur during programming Pause for five seconds lastly