こんにちは私はCで書かれたプログラムを持っています。私はグローバル変数、配列、動的変数、そして配列なども持っています...私はSIGHUPをプログラムに送信し、ハンドラーで動的メモリをクリーンアップします。そしてHUPでプログラムを再起動したいと思います。 .cでプログラムを再起動する方法はありますか?mainの静的配列によって処理されるメモリをクリーンアップしてmainを再起動するために、mainを終了して戻りたいと思います。
また会ったね。シグナルハンドラーを編集し、ハンドラーにexecvを追加しました。ハンドラーには2つの関数があります。最初はclean_up();です。これは動的配列をクリーンアップし、2番目はexecv()です。HUPを送信した後、最初にclean_upが実行され、次にexecvが実行されます。しかし、しばらくすると、セグメンテーション違反が発生します。しかし、clean_up funcを呼び出さない場合は、正常に動作しますか?クリーンアップに問題がありますか?ただし、クリーンアップは他の信号、たとえば終了信号では正常に機能します
そして、execvへの質問?。メインから新しいプログラムを開始しませんか?。execvを呼び出すと、メインから再開されません。