EOF续

来源:互联网 发布:vmware网络主机模式 编辑:程序博客网 时间:2024/06/05 09:11

程序如下:

#include<stdio.h>

 

/*count characters in input */

main()

{

    long nc;

    

    nc = 0;

    while(getchar() != EOF)

       ++ nc;

    printf("%ld\n", nc);

}

 

 (1)直接按Ctrl+z结束,则显示为[1]+    Stopped      ./a.out;而并不打印输入字符的个数。

(2)如果先按“回车”,再按Ctrl+z,则除了上述打印的字符串换行被显示出来外,别无其他反应。

(3)直接按Ctrl+d则根本不结束,毫无反应。

(4)如果先按“回车”,再按Ctrl+d,则打印输入字符的个数是比你实际输入的字符个数多1的,这多出来的1应该就是“Enter”。接下来,程序结束。

这个例子就充分说明了到底Ctrl+z之后,程序是被kill了还是suspended了。linux下结束输入是“Enter”之后Ctrl+z。