回答編集履歴

1

すこしだけ詳細にしました。

2017/06/02 15:15

投稿

Eki
Eki

スコア429

test CHANGED
@@ -1,11 +1,13 @@
1
1
  EOFはWindows環境ではCtrl+Zだったかと思いますが,Linux等ではCtrl+Dだと思います。
2
2
 
3
- Linux環境でCtrl+Zを入力するとプロセスがサスペンドしますね。この状態で`bg`とコマンドを打てばプロセスはバックグラウンドで走るし,`fg`と入力すればまたフォアグラウンドに戻ってきます。
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と入力してもそれは文字としての`'-','1','\n'`という入力にすぎないので,Cの世界の数値としての`-1`つまりEOFを入力することはできません。また,キーボードからの入力の末尾に一行ごとにEOFがあるのでもないので,Ctrl+Dなどで明示的に入力する必要があります。
11
+ なお,キーボードから-1と入力してもそれは文字としての'-','1','\n'という入力にすぎないので,Cの世界の数値としての-1つまりEOFを入力することはできません。また,キーボードからの入力の末尾に一行ごとにEOFがあるのでもないので,Ctrl+Dなどで明示的に入力する必要があります。
12
+
13
+