setbuf
Formanty buforowanie strumienia.Funkcja ta została zaniechana; Użyj setvbuf zamiast.
void setbuf(
FILE *stream,
char *buffer
);
Parametry
stream
Wskaźnik, aby FILE struktury.buffer
Bufor przydzielone przez użytkownika.
Uwagi
setbuf Działają formanty buforowania dla stream.stream Argument musi odwoływać się do otwartego pliku, który nie odczytu lub zapisu.Jeśli buffer argument jest NULL, strumień jest un-buffered.Jeśli nie, bufor musi wskazywać tablicy znaków długości BUFSIZ, gdzie BUFSIZ jest rozmiar buforu, zdefiniowany w STDIO.H.Bufor określony przez użytkownika zamiast buforu przydzielona przez system domyślny dla danego strumienia jest używany dla we/wy buforowania.stderr Strumień jest un-buffered domyślnie, ale można użyć setbuf przydzielić buforów do stderr.
setbufzostał zastąpiony przez setvbuf, który jest preferowany rutynowych dla nowego kodu.setbufjest zachowywana zgodność z istniejącym kodem.
Wymagania
Rozpoczęto wykonywanie procedury |
Wymaganego nagłówka |
---|---|
setbuf |
<stdio.h> |
Aby uzyskać dodatkowe informacje o zgodności, zobacz zgodności we wprowadzeniu.
Przykład
// 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();
}
}
Odpowiednik w programie .NET Framework
Nie dotyczy. Aby wywołać standardowych funkcji C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.