it means setvbuf works...>?
Code:
#include "stdio.h"
int main(void)
{
char inbuf[15];
char outbuf[30];
char ch[10];
puts("input a string(<10):");
gets(ch); //addpend '/0' to end, count it.
printf("%s\n",ch);
printf(" buffer for stdin locates:%x\n", (*stdin)._base);
printf(" size for stdin is:%d\n", (*stdin)._bufsiz );
printf(" pointer for stdin locates:%x\n\n", (*stdin)._ptr );
printf(" buffer for stdout locates:%x\n", (*stdout)._base );
printf(" size for stdout is:%d\n", (*stdout)._bufsiz );
printf(" pointer for stdout locates:%x\n\n", (*stdout)._ptr );
printf(" inbuf locates:%x\n", inbuf);
printf(" outbuf locates:%x\n\n", outbuf);
puts("After setvbuf()");
setvbuf( stdin, inbuf, _IOLBF, sizeof(inbuf)-1);
setvbuf( stdout, outbuf, _IOLBF, sizeof(outbuf)-1);
printf("input a string(<10):\n");
gets(ch);
printf("%s\n",ch);
printf(" buffer for stdin locates:%x\n", (*stdin)._base );
printf(" size for stdin is:%d\n", (*stdin)._bufsiz );
printf(" pointer for stdin locates:%x\n\n", (*stdin)._ptr );
printf(" buffer for stdout locates:%x\n", (*stdout)._base );
printf(" size for stdout is:%d\n", (*stdout)._bufsiz );
printf(" pointer for stdout locates:%x\n", (*stdout)._ptr );
}