shell
shell 要求完成的功能有三:
- 可执行的程序命令
- 重定向命令
- 管道命令
1. 可执行程序
shell要求可以调用可执行程序, 可以用execv函数来实现
头文件:#include <unistd.h>
定义函数:int execv (const char * path, char * const argv[]);
函数说明:execv()用来执行参数path 字符串所代表的文件路径, 与execl()不同的地方在于execv()只需两个参数, 第二个参数利用数组指针来传递给执行文件。
返回值:如果执行成功则函数不会返回, 执行失败则直接返回-1, 失败原因存于errno 中。
exec 函数传递的 filename参数按照 PATH 环境变量,在指定的各个目录中寻找可执行文件。
PATH 环境变量包含一张目录表(称为路径前缀),目录之间用冒号(:)分割。例如,
PATH=/bin:/usr/bin:/usr/local/bin:.
为了实现PATH环境变量, 使得shell可以自主根据PATH变量需找