setbuf
Mengontrol buffering aliran. Fungsi ini tidak digunakan lagi; gunakan setvbuf
sebagai gantinya.
Sintaks
void setbuf(
FILE *stream,
char *buffer
);
Parameter
stream
Penunjuk ke FILE
struktur.
buffer
Buffer yang dialokasikan pengguna.
Keterangan
Fungsi setbuf
mengontrol buffering untuk stream
. Argumen stream
harus merujuk ke file terbuka yang belum dibaca atau ditulis. buffer
Jika argumen adalah NULL
, aliran tidak dibuffered. Jika tidak, buffer harus menunjuk ke array karakter panjang BUFSIZ
, di mana BUFSIZ
adalah ukuran buffer seperti yang didefinisikan dalam STDIO.H. Buffer yang ditentukan pengguna, alih-alih buffer yang dialokasikan sistem default untuk aliran yang diberikan, digunakan untuk buffering I/O. Aliran stderr
tidak dibuffer secara default, tetapi Anda dapat menggunakan setbuf
untuk menetapkan buffer ke stderr
.
setbuf
telah digantikan oleh setvbuf
, yang merupakan rutinitas pilihan untuk kode baru. Tidak seperti setvbuf
, setbuf
tidak memiliki cara melaporkan kesalahan. setvbuf
juga memungkinkan Anda mengontrol mode buffering dan ukuran buffer. setbuf
ada untuk kompatibilitas dengan kode yang ada.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Persyaratan
Rutin | Header yang diperlukan |
---|---|
setbuf |
<stdio.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// 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
Baca juga
Streaming I/O
fclose
, _fcloseall
fflush
fopen
, _wfopen
setvbuf
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk