Remove Ctrl-C in stdio && remove sig_ctrlc(will be back in ch9)

This commit is contained in:
root 2022-12-03 00:04:02 +08:00
parent a0e2bf4c58
commit e8bb2e3afa
2 changed files with 2 additions and 41 deletions

View File

@ -23,12 +23,12 @@ impl File for Stdin {
if c == 0 {
suspend_current_and_run_next();
continue;
} else if c == 3 {
}/* else if c == 3 {
// 3 is ctrl_c
//println!("[K] os/fs/stdio/read: Got Ctrl_C");
current_add_signal(SignalFlags::SIGINT);
break;
} else {
}*/ else {
break;
}
}

View File

@ -1,39 +0,0 @@
#![no_std]
#![no_main]
extern crate user_lib;
use user_lib::console::getchar;
use user_lib::*;
const LF: u8 = 0x0au8;
const CR: u8 = 0x0du8;
fn func() {
println!("signal_handler: caught signal SIGINT, and exit(1)");
exit(1);
}
#[no_mangle]
pub fn main() -> i32 {
println!("sig_ctrlc starting.... Press 'ctrl-c' or 'ENTER' will quit.");
let mut new = SignalAction::default();
let old = SignalAction::default();
new.handler = func as usize;
println!("sig_ctrlc: sigaction");
if sigaction(SIGINT, &new, &old) < 0 {
panic!("Sigaction failed!");
}
println!("sig_ctrlc: getchar....");
loop {
let c = getchar();
println!("Got Char {}", c);
if c == LF || c == CR {
break;
}
}
println!("sig_ctrlc: Done");
0
}