Love beautiful code? We do too.
Hàm int setvbuf(FILE *stream, char *buffer, int mode, size_t size)
trong Thư viện C chuẩn xác định cách một Stream nên được đệm (buffer).
Dưới đây là phần khai báo cho hàm setvbuf() trong C:
int setvbuf(FILE *stream, char *buffer, int mode, size_t size)
Tham số
mode | Miêu tả |
---|---|
_IOFBF | Full buffering − Trên output, dữ liệu được ghi một khi buffer đầy. Trên Input, buffer được điền khi một hoạt động input được yêu cầu và buffer là trống |
_IOLBF | Line buffering − Trên output, dữ liệu được ghi khi gặp: hoặc một ký tự newline (dòng mới) được chèn vào trong Stream hoặc khi buffer đầy. Trên Input, buffer được điền tới ký tự newline (dòng mới) tiếp theo khi một hoạt động input được yêu cầu và buffer là trống |
_IONBF | No buffering − Không có buffer nào được sử dụng. Mỗi hoạt động I/O được ghi ngay khi có thể. Các tham số buffer và size bị bỏ qua |
Trả về giá trị
#include <stdio.h>
#include <string.h>
int main()
{
char buff[1024];
memset( buff, '\0', sizeof( buff ));
fprintf(stdout, "Chuan bi buffer\n");
setvbuf(stdout, buff, _IOFBF, 1024);
fprintf(stdout, "Hoc C co ban va nang cao tai Hoclaptrinh !!!\n");
fprintf(stdout, "Phan noi dung nay se duoc dem\n");
fflush( stdout );
return(0);
}
Biên dịch và chạy chương trình trên để cho kết quả sau. Ở đây chương trình vẫn đệm output vào trong buff tới khi nó gặp lời gọi đầu tiên tới hàm fflush(), sau đó nó lại bắt đầu đệm output.
Xem thêm:
Hoclaptrinh.vn © 2017
From Coder With
Unpublished comment
Viết câu trả lời