問題タブ [sigaction]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - sigaction を複数回使用した際のエラー
子プロセスが終了するたびに関数を呼び出そうとしています。これは、execve() によって送信された SIGCHLD をキャッチすることによって行われます。ここでの問題は、ハンドラー関数が常に 2 回呼び出されるとは限らないことです。たまにあるのでちょっと戸惑います。
私のコードはこれです:
実行しようとすると、結果が次のようになることがあります。
どちらが正しいようです。しかし、他の場合、私の結果は次のとおりです。
これは、sigaction が常に SIGCHLD シグナルを受信しているとは限らないと私に思わせます。valgrind を実行すると、次のエラーが表示されます。
しかし、これが何を意味するのかわかりません。
c - sigaction ハンドラーのコンテキストが void ポインターであるのはなぜですか?
マニュアルsigaction(2)
ページ:
void *
マニュアルページに a と記載されているのに、なぜ ucontextが a なのucontext_t *
ですか?
c++ - C++ から sigaction を呼び出す方法
C で (signal.h を使用して) 使用する方法は知っていますが、<csignal>
ライブラリは C++ で提供されており、sigaction が含まれているかどうかを知りたいですか? 実行してみましたが、見つかりませんでした。私は何か間違ったことをしたのだろうか?
しかし、何らかの理由で機能しません。編集:「機能しない」とは、コンパイラが失敗し、std::sigaction 関数または構造体がないことを意味します。
sigaction は C POSIX ですね。