转http://www.judymax.com/archives/262
今天在看示例程序时冒出来一句args = emalloc(BUFSIZ); BUFSIZ是什么意思,查了一下才明白。
这是stdio.h 中的一个宏定义,内容如下:
/* Default buffer size. */ #ifndef BUFSIZ define BUFSIZ _IO_BUFSIZ #endif
由注释即可知,这个BUFSIZ代表了默认的缓冲大小。
它具体是多大呢?是_IO_BUFSIZ这么大。这个_IO_BUFSIZ又是多大呢?它是libio.h中的一个宏定义,其内容如下:
#define _IO_BUFSIZ _G_BUFSIZ
好吧……这个_G_BUFSIZ又是多大?它在_G_config.h里,有:
#define _G_BUFSIZ 8192
好了,真相大白了!