setbufsetbuf

Contrôle la mise en mémoire tampon de flux.Controls stream buffering. Cette fonction est dépréciée. Utilisez à la place setvbuf.This function is deprecated; use setvbuf instead.

SyntaxeSyntax

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

ParamètresParameters

streamstream
Pointeur désignant la structure FILE.Pointer to FILE structure.

bufferbuffer
Mémoire tampon allouée par l’utilisateur.User-allocated buffer.

NotesRemarks

La fonction setbuf contrôle la mise en mémoire tampon pour le flux.The setbuf function controls buffering for stream. L’argument Stream doit faire référence à un fichier ouvert qui n’a pas été lu ou écrit.The stream argument must refer to an open file that hasn't been read or written. Si l’argument de mémoire tampon a la valeur null, le flux n’est pas mis en mémoire tampon.If the buffer argument is NULL, the stream is unbuffered. Si ce n’est pas le cas, 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 telle qu’elle est définie dans stdio. Manutention.If not, the buffer must point to a character array of length BUFSIZ, where BUFSIZ is the buffer size as defined in STDIO.H. La mémoire tampon spécifiée par l’utilisateur est utilisée pour la mise en mémoire tampon des E/S à la place de la mémoire tampon par défaut allouée par le système.The user-specified buffer, instead of the default system-allocated buffer for the given stream, is used for I/O buffering. Le flux stderr n’est pas mis en mémoire tampon par défaut, mais vous pouvez utiliser setbuf pour assigner des mémoires tampons à stderr.The stderr stream is unbuffered by default, but you can use setbuf to assign buffers to stderr.

setbuf a été remplacé par setvbuf, qui est la routine préférée pour le nouveau code.setbuf has been replaced by setvbuf, which is the preferred routine for new code. Contrairement à setvbuf, setbuf n’a aucun moyen de signaler des erreurs.Unlike setvbuf, setbuf has no way of reporting errors. setvbuf vous permet également de contrôler à la fois le mode de mise en mémoire tampon et la taille de la mémoire tampon.setvbuf also lets you control both the buffering mode and the buffer size. setbuf existe pour la compatibilité avec le code existant.setbuf exists for compatibility with existing code.

Configuration requiseRequirements

RoutineRoutine En-tête requisRequired header
setbufsetbuf <stdio.h><stdio.h>

Pour plus d’informations sur la compatibilité, voir consultez Compatibilité.For additional compatibility information, see Compatibility.

ExempleExample

// 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

Voir aussiSee also

E/S de fluxStream I/O
fclose, _fcloseallfclose, _fcloseall
fflushfflush
fopen, _wfopenfopen, _wfopen
setvbufsetvbuf