sigaction

    0

    1答えて

    私はsigactionハンドラを持つCプログラムを書いています。 SIGALRMがしばらく来ていない場合は、itimervalもあります。 ハンドラは、無限ループの総数は時間が 出口(1)が経過 印刷を完了 印刷をすべきです。 シグナルハンドラがカスタマイズされたパラメータを受け取っていないことに気づいたので、グローバルループカウンタがあります。 私の問題は次のとおりです。どのように時間が経過して

    0

    1答えて

    私は最近、Linux上で信号処理を行っており、信号処理に関するすべての概念を読んでいます。私の頭をかしめる問題の1つは、プロセスがブロックされていない間にsigtimedwait()のセットのシグナルが配信されない理由です。次のように私のコードは次のとおりです。 - #include <signal.h> #include <stdlib.h> #include <string.h> #in

    0

    1答えて

    GPSモジュールからデータを取得して処理するRaspberry-Pi(linux)で動作するプログラムを開発しています。 今のところ、プログラムはGPSデータを取り込み、GPSモジュールの周波数でストリーミングされたwhile(1)ループを中心にしています。 しかし、私はwhile(1)が非常に効率的な解決策ではないことを知っています(このRPiは後で無人機に座る予定です)。 私はタイマーを設定し

    0

    1答えて

    私はLinux上で単一のプロセスとして動作する組み込みアプリケーションを持っています。 私は、プロセスは、アプリと同じように、永遠に実行する必要がありますすべては、いくつかのスレッドを持っている など、そのようなセグメンテーション違反などの問題を、キャッチするsigaction()を使用しています。 私の質問は、スレッドの1つが死ぬかどうかを検出する必要があるかどうかです。 スレッドのエラーがアプ

    1

    1答えて

    私は、Linux PCカーネルバージョン4.4.14で動作するマルチスレッドアプリケーションを開発しています。私はセグメンテーション違反を引き起こすいくつかの致命的なエラーを追跡したい。 SIGSEGVにリンクされたシグナルハンドラをセットアップして、クラッシュを引き起こしているスレッドのPID番号を取得しようとしました。ハンドラ関数のコードは以下の通りです: void sighandler(in

    1

    1答えて

    コマンドを実行できないときはいつでも、「バイナリを実行するとエラー:-nameOfBinary-」というシェルを作ろうとしています。しかし、それは常に私に "No such file or directory"というメッセージを与えるということです。 相続人の私のコードの一部:コード付き void handle_SIGINT() { write(STDOUT_FILENO,line,st

    1

    1答えて

    のデフォルトアクションを変更することはできません、私はSIGINT信号をキャッチし、 のようなメッセージをプリントアウトしたいのsigactionを使用して sa.sa_sigaction = handler; Iドンを経由してそれに新しいハンドラを渡すことで「SIGINTを受け取りました」プログラムを終了したくない。 シェルでプログラムを実行し、Ctrl + cで信号を生成すると、シグナルハ

    1

    1答えて

    私はバグのあるコードを処理していましたが、クラッシュに関する詳細情報を得るためにSIGSEGVハンドラをインストールしたかったのです。しかし、私はハンドラが呼び出されていないことに気付きました。 私は理由を探していて、スタックポインタの値が壊れていると思われます(マスクされていません)。ここで私が確認するために書いたいくつかの概念実証コードがあります: static void catch_func

    0

    1答えて

    私は大学のためのminishellプロジェクトを行っています。私はバックグラウンドでコマンドを実行する方法がわかりません。私が知っていることは、私はwaitpid()とsigaction()を使わなければならないということです。もし誰かが私にこれを手渡すなら、私は感謝しています。ここで私が使用しているミニコードコマンドを利用するためのコードの一部です。 void execute_command_l

    1

    1答えて

    Solarisプラットフォームにいくつかのレガシーコードがありますが、これをLinuxに移植したいのですが、Linuxでコンパイルエラーが発生しています。 Solarisの が、私は次のコードスニペットがあります。私は、GCC 4.9.2を使用してLinux上でコンパイルしようとする(Solaris上でOKコンパイル) #include <signal.h> ... void f() {