[dependencies]signal-hook = "0.3.14"use std::{thread, time::Duration};use signal_hook::consts::SIGINT;
fn main() -> Result<(), Box<dyn std::error::Error>> { let mut signals = signal_hook::iterator::Signals::new(&[SIGINT])?; println!("please press ctrl-c"); thread::spawn(move || { for signal in signals.forever() { println!("received signal {signal:?}"); } }); thread::sleep(Duration::from_secs(10)); Ok(())}在终端执行:
cargo run待屏幕输出 “please press ctrl-c” 后,按 Control + C 多次。将得到类似下面的输出:
please press ctrl-c^Creceived signal 2^Creceived signal 2^Creceived signal 2^Creceived signal 2^Creceived signal 2