CSAPP - 一个简单的Shell

Shell命令在是最常用的一个和操作系统交互的工具。

shell命令的基本执行过程是:

1)从stdin来读取用户的command。

2)对command进行解析,并判断是否为buildin command

3)如果是buildin command则执行buildin command

4)如果非buildin command,则执行fork命令,然后在fork的子进程中执行execve创建新的program。

其中还涉及到对输入command进行parse的简单过程。

5)如果要对进程的切换fg, bg等。需要涉及到signal切换等。(暂时不支持)

一下是一个最简单的shell, 依赖书籍csapp.c 以及 csapp.h

/* Simple Shell command 
* linux>gcc -o shellex shellex.c csapp.c -lpthread
*/

#include "csapp.h"
#define MAXARGS     128

/*Function prototypes */
void eval(char *cmdline);
int parseline(char * buf, char **argv);
int builtin_command(char **argv);

int main()
{
    char cmdline[MAXLINE];      /* Command line */

    while(1) {
        /* Read */
        printf("> ");
        Fgets(cmdline, MAXLINE, stdin);
        if(feof(stdin))
            exit(0);
        
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值