[解決済み] SIGRTMAXとSIGRTMINの使い方は?
2022-02-12 18:28:07
質問事項
POSIXで定義されているリアルタイム・シグナルがどのようにシグナルであるかは知っています。例えば、SIGSEGVは無効なメモリ参照で発生し、SIGINTはctrl+cのようなキーボード割り込みで発生します。
SIGRTMAXやSIGRTMINといったシグナルはどのように生成され、使用されるのですか?
解決方法は?
実は、SIGRTMAXとSIGRTMINのシグナルを生成する方法がわかりました。
もし今後、誰かがこれに出会ったら...。
まず 構造体 SIGACTION のように、必要なメンバーを設定します。設定 sa_handler を、シグナルの発生を処理する関数に設定します。
これを実行するために、関数 sigaction() は、linuxのマニュアルで指定されている引数を渡してください。
というわけで、今度は struct sigevent のメンバを設定し、処理するシグナル番号とその通知をどのように送信するかを指定します。
これで設定は完了です。次は、時間切れなどのシグナルを発生させる現象やイベントを作成する必要があります。
このためには、タイマーのハンドラを create_timer() これにより、sigeventとハンドラが関連付けられます。
次に、有効期限を設定します。 構造体 itimerspec を使用し、さらに timer_settime() で、有効期限をハンドラに関連付けます。
つまり、有効期限はハンドラに関連付けられ、時間ハンドラはsigeventに関連付けられ、sigeventはそのシグナルをsigactionで設定されたハンドラにリダイレクトします。
関連
-
[解決済み】Macでポート3000をロックしているプロセスを検索(およびkill)する
-
[解決済み] bash: cd: そのようなファイルやディレクトリはありません
-
[解決済み] Linuxのシェルでwebsocketの応答を読み取る方法
-
[解決済み] Linuxで特定のテキストを含むすべてのファイルを検索するにはどうすればよいですか?
-
[解決済み] ワイルドカードマッチングに基づいて、現在のフォルダとサブフォルダ内のすべてのファイルを再帰的に検索するにはどうすればよいですか?
-
[解決済み] フォルダとそのサブフォルダ/ファイルのパーミッションを一括で変更する方法
-
[解決済み] すべてのディレクトリとサブディレクトリを再帰的にgrepするにはどうしたらいいですか?
-
[解決済み] プロセスとスレッドの違いは何ですか?
-
[解決済み] Linux で grep を使ってファイル名だけを表示するにはどうしたらいいですか?
-
[解決済み] 何が私のプロセスを殺したのか、なぜなのか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】 -bash: fork: メモリを確保できない
-
[解決済み] エラー: gdal がインストールされているのに、R 依存パッケージのインストール中に gdal-config が見つからない
-
[解決済み] フォルダが存在するにもかかわらず、マウントポイントが存在しない。手動でマウントできる
-
[解決済み] 圧縮データが無効です。
-
[解決済み] retqとretの違いは何ですか?
-
[解決済み] Bashを使ったファイルの検索とコピー [重複]。
-
[解決済み] CLIから、ファイルの最終行を表示する
-
[解決済み] bashの「#$」はどういう意味ですか?
-
[解決済み] grepコマンドで特定の列にマッチングさせる
-
[解決済み] Solaris では lsof -i が相当します。