setbuf

 

Pour obtenir la dernière documentation sur Visual Studio 2017 RC, consultez Documentation Visual Studio 2017 RC.

Tampon de flux de contrôle. Cette fonction est déconseillée ; Utilisez setvbuf à la place.

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

Paramètres

stream
Pointeur vers la structure FILE .

buffer
Mémoire tampon allouée par l’utilisateur.

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

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

RoutineEn-tête requis
setbuf<stdio.h>

Pour plus d'informations sur la compatibilité, voir Compatibilité dans l'introduction.

// 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();  
   }  
}  

stream1 set to user-defined buffer at: 0012FCDC  
stream2 buffering disabled  

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.

Flux d’e/s
fclose, _fcloseall
fflush
fopen, _wfopen
setvbuf

Afficher: