一个简单地Shell-like 的实现

来源:互联网 发布:天刀女性明星捏脸数据 编辑:程序博客网 时间:2024/05/01 04:28

下面的一个程序是shell的简单实现,虽然简单,但是原理是相同的。请仔细体会。


//shell-like function

#include "apue.h"

#include <sys/wait.h>

int main(int argc,char *argv[])

{

        char buf[MAXLINE];

        pid_t pid;

        int status;


        printf("%% ");

        while (fgets(buf, MAXLINE,stdin) != NULL)

        {

                if (buf[strlen(buf)-1] =='\n')

                {

                        buf[strlen(buf)-1] =0;

                }


                if ((pid  = fork()) <0)

                {

                        printf("err\n");

                }

                elseif (pid == 0)/* child */

                {

                        execlp(buf, buf, (char *)0);

                        exit(127);

                }


                /*  parent */

                if ((pid = waitpid(pid, &status,0)) < 0)

                {

                        printf("error\n");

                }


                printf("%% ");

        }

        return(0);

}

0 0
原创粉丝点击