copy_from_userとcopy_to_userの違いを説明しなさい。
intr = ^Cはインタラプト(interrupt)を起
させるばあいのキー入力を示している。^は[Control]キー
を意味しているので、^Cは[Control]-[c]である。そこで、
このキー入力はSIGINT信号を生成することが分かる。
さらに画面の表示を見ていくと、susp = ^Zがある。suspとは、
サスペンド(suspend)の略である。^は[Control]キーを意味
しているので、^Zは[Control]-[z]である。このキー入力で
生成される信号名はSIGTSTPであり、TSTPはterminal
stopの略である。このSTOP状態は一学期のジョブの実験の、フォ
アグラウンド、バックグラウンド、停止状態(STOP)で体験した停止状態と
同じものである。
そこで、この停止状態を使えば、デバイスドライバやアプリケーショ
ンの開発でもemacsを終了しないでコンパイル作業をすることがで
きる。
emacsでソースファイルを作成し、C-x C-sでファイルをセー ブしてからシグナルC-zでemacsを停止状態にすれば、そのままコ ンパイル作業に移ることができる。もし、コンパイル作業でエラーが発生 したばあいは、そのままフォアグラウンドのemacsに戻って修正作 業をすればよい。
なお、コンパイルに成功したばあいは、C-x C-cでemacsを終
了しておくことは当然である。さもないと、沢山のemacsが停止状
態で残ってしまうからである。これはjobsコマンドで確かめること
ができる。そこでkill %<job番号>を使って終了してもよい。
上記のC-x C-sは[Control]-[x] [Control]-[s]の略であり、
C-zは[Control]-[z]の略である。
停止状態からフォアグラウンドに戻るときのキー操作を示しなさい。
情報量が非常に大きなファイルを見るときも一時停止と再開を繰り返すこ
とができる。また、コンピュータのコマンド入力とその応答も通信なので
一時停止させることができる。
コンピュータのプロンプトが表示されているときに[Control]-[s]
を実行しなさい。
そのあとで適当なコマンドか文字を入力しても画面には応答が無いことを確認し
なさい。
そして[Control]-[q]を実行すると応答が再開することを確認しなさい。
[Control]-[s]の信号名はSIGSTOPであり、[Control]-[q]の
信号名はSIGCONTである。この二つの信号は、stty -aコマ
ンドで表示される画面では、どのように表現されているか示しなさい。