操作系统实验六

某度兽ban掉了我的号,所以这次就写到这里来。

既然是要响应F12的操作嘛,就不能响应原来的F12功能,所以在keyboard.S中,把下面这行注释掉:

        call show_stat  


然后在tty_io.c里面去写F12触发的变化,在读输入队列的循环中,最开始的时候去判断F12并设置状态:

        if(c == 'L'){
            chimney = !chimney;
            break;
        }


忘记说了,chimney的声明加在tty.h里面:

unsigned int chimney;

同样在console.c里面改控制台的输出,在读输出队列的循环中,最开始就去判断F12是否按过了:

        if(chimney == 1){
            if((c > 64 && c < 91)||(c > 96 && c < 123)||(c == 95)||(c == '-')||(c > 47 && c < 58)){
                c = 42;
            }
        }


之后再来处理对文件的函数,read_write.c里面

    if (S_ISREG(inode->i_mode))
        return file_write(inode,file,buf,count);

这就要去改file_write(),

            //*(p++) = get_fs_byte(buf++);
            *p = get_fs_byte(buf++);
            if(chimney){
                copy_c = *p;
                if((copy_c > 64 && copy_c < 91)||
                (copy_c > 96 && copy_c < 123)||
                (copy_c == 95)||(copy_c == '-')||
                (copy_c > 47 && copy_c < 58)){
                    *p = 42;
                }
            }
            p++;


这个就是写文件的地方了。

然后实验报告你们都懂的,我就不详述了。

最后提示一下,在tty.h中加了一行:

#include <linux/tty.h>


所以在用到chimney的时候就要包含tty.h。

unsigned int chimney;



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值