《Unix/Linux编程实践教程》之Shell编程一

2014-11-24 09:10:17 · 作者: · 浏览: 1

《Unix/Linux编程实践教程》是一本学习系统编程非常好的入门教材。本书第8章开始介绍进程的相关概念。包括相关的命令如ps,以及相关的系统调用如fork,wait等。在本章中,作者通过一步步搭建自己的Shell来讲解unix的进程模型。


相关阅读:


为了搭建一个shell,需要学会以下技术:


1)运行一个程序(execvp);


2)建立一个进程(fork);


3)等待退出(wait)。


例子代码如下:


1: /* prompting shell version 1


该程序通过终端接收命令参数, 通过makestring()将'/n’换成'/0',之后存入arglist数组,当输入完成后,在数组最后添加0。最后调用execute()执行。


需要注意的是:如果执行成功,execvp没有返回值,当前程序从进程中清除。


运行后的结果如下:



可以看到,“ls -l” 命令可以成功运行。但存在一个显著的缺陷:程序只能运行一次,不能像一般的shell一样,可以一直等待用户输入,然后执行。