From cf211629a21e9683abab43bb881b20ffa41bdb54 Mon Sep 17 00:00:00 2001 From: KAAAsS Date: Fri, 22 Apr 2022 00:01:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- note.org | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/note.org b/note.org index 20e017d..5e29868 100644 --- a/note.org +++ b/note.org @@ -217,3 +217,32 @@ sys_yield 要注意必须手动调用切换上下文,不然不会有效果。 Step A、B 的代码完全没有删干净,而且 A、B 描述都是反的。所以写完练习 14 就可以直接通过 spawn info 了。 我还以为乱码是我又映射错了,结果是代码真的是这么设计的,好吧。 + +** Lab 5 + +*** 练习 1-4 + +由于奇妙的页错误(2240710117)鸽了一年,我已经什么都记不起来了(混乱) + +*** 练习 5 + +退格、tab 都可以捕获,以及由于 terminal 特性 "\b \b" 可以删除前一字符 + +*** 练习 6 + +ls 的检查要求顶格打印 + +cd 实现复杂一点,统一用 path_to_absolute 加入当前路径,path_append 连接(感觉 bug 会很多) + +cat 我以为我看错了,怎么就直接 printf 了 + +*** 练习 7 + +yet another 没删干净 + +补全还挺有意思的,给的指引也挺清晰(complement_time)。搞一个词典匹配就好,反正也没多少个 O(n) 了。 + +complement 存待补全,结果直接替换整个 buf 比较简单。 + +因为有参数、文件、内建指令等等多次匹配,所以 n 轮循环 complement_time 还挺讨厌的。这里第一轮匹配的时候 +收集匹配数,后面几轮直接取模递归了。虽然会多重复几次匹配,但是胜在简洁。