これPOSIXシステムインタフェース仕様説明する:
デフォルトの動作は、
SIGCONT
プロセスが停止した場所で実行を再開することです。後ろに保留中のブロック解除信号が最初に処理されます。
ここで「以後」とはどういう意味ですか? 「以前」でなければなりませんか?それが意味するもののいくつかの例はありますか?
APUEにも同様の状況があります。
親プロセスが終了するとプロセスグループが孤児になるため、POSIX.1は新しく孤立したプロセスグループ(子プロセスと同様)で停止した各プロセスに中断信号(
SIGHUP
)と継続信号(SIGCONT
)を送信するように要求します。そうすれば子供が続くことができ、後ろにブレーク信号を処理します。保留中の信号の基本的な作業はプロセスを終了することであるため、信号をキャプチャするための信号ハンドラを提供する必要があります。したがって、sig_hup 関数の printf が pr_ids 関数の printf の前に現れると予想します。
「後」は「前」を意味しませんか?
存在するSIGCONT
SIGHUP
孤児Linuxプロセスグループの順序上記の2つの文では、「以降」の代わりに「以前」を提案するようです。それとも、私が間違って理解したかもしれません。
SIGHUP
子プロセスが実行を再開するまでメッセージを渡すことはできません。プロセスが停止すると、SIGCONT
およびを除くすべてのシグナリングが中断されますSIGKILL
。だから
SIGHUP
最初に到着しますが、まで処理できません。SIGCONT はプロセスの実行を起こします。
ありがとうございます。
答え1
いいえ、それ以降を意味します。条件は「実行を再開」プロセスが停止する場所」。
信号処理が最初に行われ、それから実行は続行されます。
答え2
信号.c POSIX 1b互換シグナルカーネルコード
で検索してくださいSIGCONT
。SIGCONT
この信号が見つかると、コードが保留中の信号を探していることがわかります。