#include <stdio.h>
void pr_stdio(const char *, FILE *);
int main()
{
	FILE *fp;
	fputs("enter any character\n",stdout);
	if(getchar()==EOF)
		printf("getchar error");
	fputs("one line to standard error\n",stderr);
	pr_stdio("stdin",stdin);
	pr_stdio("stdout",stdout);
	pr_stdio("stderr",stderr);
	
	if((fp=fopen("/etc/motd","r"))==NULL)
		printf("fopen error");
	if(fgetc(fp)==EOF)
		printf("getc error");
	pr_stdio("/etc/motd",fp);
	return 0;
}
void pr_stdio(const char *name, FILE *fp)
{
	printf("stream=%s, ",name);
	if(fp->_flags & _IO_UNBUFFERED)
		printf("unbuffered");
	else if(fp->_flags & _IO_LINE_BUF)
		printf("line buffered");
	else
		printf("fully buffered or modified");
	printf(",buffer size = %d\n",fp->_IO_buf_end-fp->_IO_buf_base);
}

  在Ubuntu下运行如下:

判断标准I/O的缓冲区类型

相关文章:

  • 2021-06-21
  • 2021-08-27
  • 2021-12-19
  • 2021-11-20
  • 2021-11-20
  • 2021-11-20
  • 2021-12-10
  • 2021-11-20
猜你喜欢
  • 2021-04-30
  • 2021-12-19
  • 2021-12-19
  • 2021-12-23
  • 2021-08-15
  • 2021-05-25
  • 2021-07-19
  • 2021-12-10
相关资源
相似解决方案