Advertisement

UNIX程序设计实验一:基于参数的一元 shell 实现

阅读量:

实验一 实现带参数的简单shell

**
**

一.实验要求

基于课本第9页中所给定的程序框架,构建支持命令带有参数的简洁Shell,并设计一个能够接受带有参数指令的简明Shell系统。

正确理解和应用系统调用fork()、execve()及waitpid(),其中重点在于理解和使用execve()函数。fork()函数会生成一个新进程,这个新进程被称为子进程,它是执行fork()操作的那个进程中克隆出来的,也就是说,子进程中运行的程序与父进程中完全一致。当fork函数返回值为零时,则表示当前处于子进程中;如果返回值大于零,则表明当前处于父进程中,此时返回值即为子进程的ID号。因此,fork函数返回值可用来区分仅适于父进程中执行与子进程中执行的不同程序块.如果仅希望子进程中运行与父进程中相同的程序,则其用途显得意义不大.为了使子进程中运行不同于父程式的程序就必须调用execve函数.它是其他所有exec指令的基础.当成功调用execve指令后,该进程将开始执行指定的新程序.

其返回值类型为整型,并接受三个参数:路径名数组、可变参数表及环境变量数组。

其中:

path:要执行的程序路径名,比如“/bin/ls”,“cd”,“/usr/bin/gcc”等等。

argv:参数列表,在如ls命令中可使用的选项如-l、-a等。请注意其中第一个元素即是要执行

全部评论 (0)

还没有任何评论哟~