setbuf
Contrôle du chargement du flux 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.
Notes
La fonction d'setbuf contrôle la mise en mémoire tampon pour stream. L'argument stream doit faire référence à un fichier ouvert qui n'a pas été lu ou n'a pas été écrit. Si l'argument buffer est NULL, le flux de données n'est pas tamponné. Sinon, la mémoire tampon doit afficher 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 de la mémoire tampon allouée système par défaut pour le flux de données spécifié, est utilisé pour la mise en mémoire tampon d'E/S. Le flux d'stderr n'est pas tamponné par défaut, mais vous pouvez utiliser setbuf pour affecter des tampons à stderr.
setbuf a été remplacé par setvbuf, qui est une routine par défaut pour un nouveau code. setbuf est fourni pour la compatibilité avec le code existant.
Configuration requise
Routine |
En-tête requis |
---|---|
setbuf |
<stdio.h> |
Pour plus d'informations sur la compatibilité, 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 Exemples d'appel de plateforme.