問題 23:^S/^Q と SIGSTOP/SIGCONT は無関係
kariya-mitsuru opened this issue · comments
問題 23 の中で、^S/^Q がシグナルに関係しているとの記載がありますが、シグナルとは無関係です。
^S/^Q は端末ドライバによる出力フローコントロールであり、^S で出力が止まってもプロセスは動作し続けていますが、SIGSTOP/SIGCONT はプロセスの停止/再開のシグナルであり、SIGSTOP を受信したプロセスは停止します。
実際に ps コマンドで stat を見ると、^S の場合は大抵 S(あるいは R)ですが、SIGSTOP の場合は必ず T です。
キー入力でシグナルに関連するのは ^Z(TSTP)、^\(QUIT)、^C(INT)です。
これは見直した著者陣全員が分かってたつもりが実はそうでなかった(あるいはスルーしてしまった)という誤りでした。訂正の文言を考えます。大変ありがとうございます。
このように修正を掲示しておきます。
p.105問題文4行目
修正前: このシェルの挙動もシグナルに関係しています。
修正後: これと同じような挙動はシグナルでも実現できます。
p.106本文の3行目
修正前: Ctrl + Q で発行されるシグナル
修正後: Ctrl + Q と同じ働きをするシグナル