回答編集履歴
1
すこしだけ詳細にしました。
test
CHANGED
@@ -1,11 +1,13 @@
|
|
1
1
|
EOFはWindows環境ではCtrl+Zだったかと思いますが,Linux等ではCtrl+Dだと思います。
|
2
2
|
|
3
|
-
Linux環境でCtrl+Zを入力するとプロセスがサスペンドしますね。この状態で
|
3
|
+
Linux環境でCtrl+Zを入力するとプロセスがサスペンドしますね。見た目上ではプログラムが終了したかのようにプロンプトが戻ってきますが,`ps`コマンドなどを実行してみるとばっちり表示されます。この状態は眠っているだけなので,bgとコマンドを打てばプロセスはバックグラウンドで走るし,fgと入力すればまたフォアグラウンドに戻ってきます。
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
Ctrl+Cはプロセスを
|
7
|
+
Ctrl+CはプロセスにSIGINTというシグナルを発します。シグナルについては[Wikipedia](https://ja.wikipedia.org/wiki/%E3%82%B7%E3%82%B0%E3%83%8A%E3%83%AB_(%E3%82%BD%E3%83%95%E3%83%88%E3%82%A6%E3%82%A7%E3%82%A2))を参照してもらうと良いと思います。シグナルハンドラを設定すれば,特定のシグナルを受け取ったときの動作を自分で指定してやることもできますが,そうでなければ,SIGINTはプロセスを終了させます。
|
8
8
|
|
9
9
|
|
10
10
|
|
11
|
-
なお,キーボードから-1と入力してもそれは文字としての
|
11
|
+
なお,キーボードから-1と入力してもそれは文字としての'-','1','\n'という入力にすぎないので,Cの世界の数値としての-1つまりEOFを入力することはできません。また,キーボードからの入力の末尾に一行ごとにEOFがあるのでもないので,Ctrl+Dなどで明示的に入力する必要があります。
|
12
|
+
|
13
|
+
|