C ++ setvbuf () - Bibliothèque standard C ++

La fonction setvbuf () en C ++ est utilisée pour modifier ou spécifier le mode de mise en mémoire tampon et la taille du tampon.

prototype setvbuf ()

 int setvbuf (FILE * stream, char * buffer, mode int, size_t size);

La setvbuf()fonction modifie le mode de mise en mémoire tampon du flux de fichier donné à la valeur de mode.

Si le buffer n'est pas nul, la taille du buffer est size, sinon la fonction alloue automatiquement un buffer (basé sur la valeur de size).

Il est défini dans le fichier d'en-tête.

Paramètres de setvbuf ()

  • stream: un flux de fichiers.
  • buffer: pointeur vers le buffer à utiliser par stream.
  • mode: mode tampon. Les types de modes de mise en mémoire tampon sont:
    • _IOFBF: mise en mémoire tampon complète
    • _IOLBF: tampon de ligne
    • _IONBF: pas de mise en mémoire tampon
  • size: la taille du tampon en octets.

setvbuf () Valeur de retour

La setvbuf()fonction renvoie zéro en cas de succès et une valeur différente de zéro en cas d'échec.

Exemple: fonctionnement de la fonction setvbuf ()

 #include #include #define SIZE 1024 using namespace std; int main() ( char buffer(SIZE) = "… "; char str() = "This is first lineThis is second line"; FILE *fp = fopen("test.txt","wb+"); /* no buffering, buffer remains unchanged */ setvbuf(fp,buffer,_IONBF,SIZE); fwrite(str, sizeof(str), 1, fp); cout << buffer << endl; /* line buffering, only a single line is buffered */ setvbuf(fp,buffer,_IOLBF,SIZE); fwrite(str, sizeof(str), 1, fp); cout << buffer << endl; /* full buffering, all the contents are buffered */ setvbuf(fp,buffer,_IOFBF,SIZE); fwrite(str, sizeof(str), 1, fp); cout << buffer << endl; fclose(fp); return 0; )

Lorsque vous exécutez le programme, la sortie sera:

… Ceci est la deuxième ligne Ceci est la première ligne Ceci est la deuxième ligne

Articles intéressants...