不要一开始就看着最难的东西 从小处入手 其实这个实验本来也是这么设计的
比如评分标准里首先是simple echo,单纯实现这个的话还是挺简单的,只需要设置一下exec的参数即可(把命令行的指令split一下,当然c语言没有split,所以write from scratch确实有些难度)
然后比较简单的是simple io redirection,simple pipe,之所以是simple,指的是这种指令:
echo hello > file
wc < file
cat file | wc
很直接 只含有三者其一 所以判断一下 就可以写出相应的代码
比较让人觉得难的是both redirection,pipe and redirect
就是本文一开始提到的那种 不熟的话看起来会觉得很难处理 不过也可以start small:即给出一个具体的例子 思考应该怎么处理
比如:
grep lion < data.txt | wc > count
我们首先根据 | 的位置 ,把命令行的输入分开,因为他的两边都是指令,需要fork-exec
然后利用一点类似递归的技巧,就可以完成,至少可以通过测试了~
// 先贴代码吧 改天再总结