shellgei / shellgei160

書籍: シェル・ワンライナー160本ノックの情報ページ #shellgei160

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

問題 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 と同じ働きをするシグナル