Rav*_*dav 1 c ubuntu kernighan-and-ritchie
我已经开始学习C了,我也开始使用Ubuntu.我正在通过终端在vim中编写代码.我一直在学习Kernighan和Ritchie.这是代码 -
#include <stdio.h>
int main()
{
int c;
while ( (c = getchar()) != EOF)
putchar(c);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在,我的问题是: -
Kei*_*son 13
发生了两件不同的事情.
在Windows中键入Control-Z或在Linux中键入Control-D会触发文件结束条件并导致getchar()返回值EOF.
在Linux中键入Control-Z会有所不同:它会暂停程序的执行.键入Control-Z后,如果键入jobs命令,它将显示已暂停的程序.键入fg将使其恢复并继续接受输入 - 直到您通过键入Control-D发出文件结束信号.如果您的程序生成了一些输出,那将更容易看到.
Control-Z的行为与程序的编写方式无关; Control-Z将暂停(几乎)任何正在运行的程序,无论它是否用C语言写入,以及它是否在等待输入.这种行为特定于Linux和其他类Unix操作系统.
你可能永远不会用尽疑虑和疑问 ; 我当然没有.