From e8bb2e3afab1158ffac0243ef899bf69e11363a2 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 3 Dec 2022 00:04:02 +0800 Subject: [PATCH] Remove Ctrl-C in stdio && remove sig_ctrlc(will be back in ch9) --- os/src/fs/stdio.rs | 4 ++-- user/src/bin/sig_ctrlc.rs | 39 --------------------------------------- 2 files changed, 2 insertions(+), 41 deletions(-) delete mode 100644 user/src/bin/sig_ctrlc.rs diff --git a/os/src/fs/stdio.rs b/os/src/fs/stdio.rs index da06f1e0..f69ed7b5 100644 --- a/os/src/fs/stdio.rs +++ b/os/src/fs/stdio.rs @@ -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; } } diff --git a/user/src/bin/sig_ctrlc.rs b/user/src/bin/sig_ctrlc.rs deleted file mode 100644 index e8391d7e..00000000 --- a/user/src/bin/sig_ctrlc.rs +++ /dev/null @@ -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 -}