クリーンアップ操作のための Ctrl C のキャプチャ: 「遅延」アプローチ
Go でシグナルを処理すると、開発者は次のような特定のイベントに応答できます。プログラムの終了。一般的なシナリオの 1 つは、Ctrl C (SIGINT) 信号をキャプチャして、プログラムが終了する前に必要なクリーンアップ操作を実行することです。
信号処理用のチャネルの作成
SIGINT シグナルでは、os/signal パッケージを利用します。まず、シグナルを受信するチャネルを作成します。
c := make(chan os.Signal, 1)
Ctrl C シグナルのサブスクライブ
次に、SIGINT シグナルをリッスンするようにチャネルに通知します。
signal.Notify(c, os.Interrupt)
Signal の Goroutine の開始処理
信号を継続的に処理するゴルーチンを作成します。
go func(){ for sig := range c { // sig is a ^C, handle it } }()
クリーンアップ操作の実行
ゴルーチン内で次のように定義できます。 Ctrl C を押したときに実行されるクリーンアップ操作。これには、ディスクへのデータの書き込み、環境設定の保存、またはプログラムが終了する前に完了する必要があるその他のタスクが含まれます。
プログラムを終了させ、Ctrl C 入力に基づいて情報を出力する方法は次のとおりです。柔軟性があり、プログラムの特定の要件に応じて異なります。
以上がクリーンなプログラム終了のために Go で Ctrl C シグナルを適切に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。