// RUN: %clangxx -O0 -g %s -o %t && %run %t 2>&1 | FileCheck %s // UNSUPPORTED: solaris #include void print_something() { for (size_t i = 0; i < 10 * BUFSIZ; i++) printf("Hello world %zu\n", i); } void print_one_byte(char *buf) { printf("First byte is %c\n", buf[0]); } void test_setbuf() { char buf[BUFSIZ]; setbuf(stdout, NULL); print_something(); setbuf(stdout, buf); print_something(); print_one_byte(buf); } void test_setbuffer() { char buf[BUFSIZ]; setbuffer(stdout, NULL, 0); print_something(); setbuffer(stdout, buf, BUFSIZ); print_something(); print_one_byte(buf); } void test_setlinebuf() { setlinebuf(stdout); print_something(); } void test_setvbuf() { char buf[BUFSIZ]; setvbuf(stdout, NULL, _IONBF, 0); print_something(); setvbuf(stdout, buf, _IOLBF, BUFSIZ); print_something(); print_one_byte(buf); setvbuf(stdout, buf, _IOFBF, BUFSIZ); print_something(); print_one_byte(buf); } int main(void) { printf("setvbuf\n"); test_setbuf(); test_setbuffer(); test_setlinebuf(); test_setvbuf(); // CHECK: setvbuf return 0; }