|
大家好,我是个Linux的初学编程菜鸟,现在学习写一个C写的shell,能够实现简单的命令执行和后台运行(&)、管道(|)以及重定向(>或<)。
我的思路是循环接收命令行,获取环境变量,进行命令行分割后判断类型(管道,重定向或普通命令),查找命令(acess()),创建子进程,传参,执行execv()。
if (fork()==0) {
....
execvp(...);........
}
else{
wait(status);
//or write(pipeID[1],msgToChild,len); and so on....
}
但是由于基础知识不牢,许多地方不会实现,尤其是不知道该用什么函数以及如何进行流程控制,也不太会实现同步以及对目录路径的处理,所以想请各位大拿帮帮忙,能否发份C写的shell到这里,或我的邮箱selena5001@163.com
谢谢了!!! |
|