本人最近在看《Unix环境高级编层》,其上面的程序清单1-5的程序介绍了如何制作一个shell,而后本人又做了一点改进,改进的地方如下:
1.为了方便查看,删除了原来的err_sys()函数和其自定义的"apue.h"这个头文件!
2.增加了对于命令选项处理的功能,但是不是很强大,目前只能处理单个参数!
本人写的代码如下:
#include<stdio.h>
#include<string.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<stdlib.h>
#define MAXLINE 2048
int main(int argc,char *argv[])
{
char buf[MAXLINE];
char com[MAXLINE];
char para[MAXLINE];
int i=0,p_l=0,c_l=0;
pid_t pid; //存储子进程的id
int status; //waitpid函数返回的子进程的状态
printf("%%"); //输出提示符%
while((fgets(buf,MAXLINE,stdin)) != NULL)
{
if(buf[strlen(buf)-1] == '\n')
buf[strlen(buf)-1]='\0';
//重新设置命令和参数
i=0;
p_l=0;
memset(com,0,MAXLINE);
c_l=0;
memset(para,0,MAXLINE