程序如下:
#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。