setbuf
Ovládací prvky vyrovnávací paměti datového proudu.Tato funkce se již nepoužívá; použít setvbuf místo.
void setbuf(
FILE *stream,
char *buffer
);
Parametry
stream
Ukazatel na FILE struktury.buffer
Vyrovnávací paměť uživateli přidělena.
Poznámky
setbuf Funkci řídí ukládání do vyrovnávací paměti pro stream.stream Argument musí odkazovat na Otevřít soubor, který byl číst nebo zapisovat.Pokud buffer argument je NULL, je un-buffered proudu.Pokud není, vyrovnávací paměti musí odkazovat na pole znaků dlouhé BUFSIZ, kde BUFSIZ je velikost vyrovnávací paměti, definovaná v STDIO.H.Uživatelem zadané vyrovnávací namísto výchozí vyrovnávací systém přidělené pro daný datový proud se používá pro I/O ukládání do vyrovnávací paměti.stderr Proudu je un-buffered ve výchozím nastavení však můžete použít setbuf pro přidělení vyrovnávací paměti pro stderr.
setbufbyl nahrazen setvbuf, což je upřednostňovaný rutina pro nový kód.setbufje zachována kompatibilita s existující kód.
Požadavky
Rutina |
Požadované záhlaví |
---|---|
setbuf |
<stdio.h> |
Další informace o kompatibilitě, viz Compatibility v úvodu.
Příklad
// 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();
}
}
Ekvivalent v rozhraní .NET Framework
Nelze použít Použijte volání funkce standardní C, PInvoke. Další informace naleznete v tématu Příklady vyvolat platformu.