Partager via


setbuf

Mise en mémoire tampon du flux de contrôles.Cette fonction est déconseillée ; utilisation setvbuf à la place.

void setbuf(
   FILE *stream,
   char *buffer 
);

Paramètres

  • stream
    Pointeur vers la structure d' FILE .

  • buffer
    mémoire tampon Utilisateur-allouée.

Notes

la fonction d' setbuf contrôle la mise en mémoire tampon pour stream.L'argument d' stream doit faire référence à un fichier ouvert qui n'a pas été lu ou n'a pas été écrit.Si l'argument d' buffer est NULL, le flux est non tamponné.Sinon, la mémoire tampon doit pointer vers un tableau de caractères de longueur BUFSIZ, où BUFSIZ est la taille de la mémoire tampon comme défini dans STDIO.H.La mémoire tampon spécifiée par l'utilisateur, au lieu de la mémoire tampon système-allouée par défaut pour le flux donné, est utilisée pour la mise en mémoire tampon d'E/S.Le flux de données d' stderr n'est pas tamponné par défaut, mais vous pouvez utiliser setbuf pour assigner des mémoires tampons à stderr.

setbuf a été remplacé par setvbuf, qui est la routine par défaut pour le nouveau code.setbuf est conservé pour la compatibilité avec le code existant.

Configuration requise

routine

en-tête requis

setbuf

<stdio.h>

Pour des informations de compatibilité supplémentaires, consultez compatibilité dans l'introduction.

Exemple

// crt_setbuf.c
// compile with: /W3
// This program first opens files named DATA1 and
// DATA2. Then it uses setbuf to give DATA1 a user-assigned
// buffer and to change DATA2 so that it has no buffer.
 
#include <stdio.h>

int main( void )
{
   char buf[BUFSIZ];
   FILE *stream1, *stream2;

   fopen_s( &stream1, "data1", "a" );
   fopen_s( &stream2, "data2", "w" );

   if( (stream1 != NULL) && (stream2 != NULL) )
   {
      // "stream1" uses user-assigned buffer:
      setbuf( stream1, buf ); // C4996
      // Note: setbuf is deprecated; consider using setvbuf instead
      printf( "stream1 set to user-defined buffer at: %Fp\n", buf );

      // "stream2" is unbuffered
      setbuf( stream2, NULL ); // C4996
      printf( "stream2 buffering disabled\n" );
      _fcloseall();
   }
}
  

Équivalent .NET Framework

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez l' exemples d'appel de code non managé.

Voir aussi

Référence

E/S de flux

fclose, _fcloseall

fflush

le fopen, _wfopen

setvbuf