读书人

APUE 第二版 程序 5-2,该怎么解决

发布时间: 2012-06-08 12:55:24 作者: rapoo

APUE 第二版 程序 5-2
01.#include "ourhdr.h"

02.

03.int main(void)

04.{

05. char buf[MAXLINE]; // 如果把 MAXLINE 改为 5 结果如何 ?

06.

07. while(fgets(buf, MAXLINE, stdin) != NULL)

08. if(fputs(buf, stdout) == EOF)

09. err_sys("output error");

10.

11. if(ferror(stdin))

12. err_sys("input error");

13.

14. exit(0);

15.}


我把 MAXLINE 改为 5 理论上最多应该只从 stdin 读取 4 个字符写到 buf 然后再输出到 stdout
可是无论输入多少字符都照样输出
求解释!!!

[解决办法]
当然,循环fgets一直读到到你ctrl+d,还是输出所有内容。

你可以试着4个字节的buffer读一次10个字符的一行,结果将只是3个字符长字符串。

读书人网 >UNIXLINUX

热点推荐