#include #include #include int main(int argc, char** argv) { int buf, chars, i; fprintf(stderr,"BUFSIZ = %d\n",BUFSIZ); fprintf(stderr,"uninitialised stdout buf_size = %d\n",__fbufsize(stdout)); setvbuf(stdout, (char*)NULL, _IOFBF, 0); fprintf(stderr,"default stdout buf_size = %d\n",__fbufsize(stdout)); if (argc == 3) { buf=atoi(argv[1]); //chars to allocate chars=atoi(argv[2]); //chars to write to test buffering char* new_buf=malloc(buf); //can't free until fclose(stdout) if (setvbuf(stdout, new_buf, _IOFBF, buf)) { fprintf(stderr,"setvbuf() failed\n"); } fprintf(stderr,"specified buf_size = %d\n",__fbufsize(stdout)); if (chars) { for (i=1; i