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é.