Linuxにおけるシグナルの仕組みと実装

1. シグナルの基本概念 シグナルは、カーネルがユーザー空間のプロセスに送信する非同期通知機構であり、特定のイベント発生を知らせるために利用される。 1.1 シグナルの処理フロー 生成:カーネル、他のプロセス、またはハードウェア(例:MMUによる`SIGSEGV`)がシグナルを発生させる。 配信:カーネルが対象プロセスにシグナルを伝達し、処理を促す。 処理: ...

9月26日 19:07 投稿

Qtマルチスレッドにおけるシグナルとスロットの実装

マルチスレッド環境でのシグナルとスロット 1. QThreadクラスのシグナル/スロット機能 QThreadクラスはQObjectを継承しているため、シグナルの発信とスロット関数の定義が可能です。 主要なシグナル started() - スレッドの実行開始時に発信 finished() - スレッドの正常終了時に発信 terminated() - スレッドの異常終了時に発信 #ifndef THREADWORKER_H #define THR ...

8月2日 04:01 投稿

Linuxにおけるプロセス間通信の手法まとめ

パイプ パイプは、親子プロセス間の通信に最もシンプルなIPC(Inter-Process Communication)手法です。一つのプロセスがパイプにデータを書き込み、別のプロセスがそのデータを読み取ることができます。 #include #include #include #include #include #include int main() { int pipe_fds[2]; // パイプの読み書き用ファイルディスクリプタ pid_t child_p ...

7月30日 17:08 投稿

Linuxプロセスシグナルの発生メカニズム

シグナルの基本概念 シグナルはLinuxにおけるプロセス間通信の一種であり、非同期イベント通知を実現します。プロセスはシグナルを受信することで、特定の動作を実行したり状態を変更したりします。 シグナルの種類と特性 kill -lコマンドで確認できるシグナルは62種類あり、1〜31番が通常シグナル、32〜64番がリアルタイムシグナルです。通常シグナルは到着の有無のみを ...

5月25日 18:55 投稿