简单的Shell

来源:互联网 发布:自学java推荐书籍 编辑:程序博客网 时间:2024/06/05 02:34
#include<string.h>#include<stdio.h>#include<unistd.h>#include<sys/wait.h>#define M_C_L 256#define M_A_N 20int main(){    char command[M_C_L];    char *token[M_A_N];    char *cur=NULL;    char * const delim=" ";    int i,status;    pid_t pid;    while(1)    {        //循环初始化        i=0;        memset(command,0,sizeof(command));        memset(token,0,sizeof(token));        //输出提示符        printf(">>>");        //读入一行并解析成参数表        fgets(command,sizeof(command),stdin);        command[strlen(command)-1]=0;        cur=command;        while (token[i] = strsep(&cur,delim)) {            puts(token[i]);            i++;         }        //exec调用        pid=fork();        if(pid==0)        {            if(token[1]==0)                execlp(token[0],token[0],(char*)0);            else                execvp(token[0],token+1);        }        if ((pid = waitpid(pid, &status, 0)) < 0)puts("waitpid error");    }    return 0;}


原创粉丝点击