自己编写简单的shell

ubuntu 14.04.2
自己编写一个简单的shell
(简单爆了,因为这是我自己写的)
(虽然简单,但是最基本的功能还是能够实现的)
(头一回按照自己的思路独立写几行代码,感觉不错哦)

函数execvp(progname,arglist)的功能

  1. 将指定的程序复制到调用它的进程
  2. 将指定的字符串数组作为argv[]传给这个程序
  3. 运行这个程序

头文件:#include<unistdh>
函数原型:result = execvp(const char* file, const char* argv[])
返回值:如果出错,返回-1

几点注意事项:

  1. execvp 载入由 file 指定的程序到当前进程,然后试图运行它。
  2. execvp 在环境变量 PATH 所指定的路径中查找 file 文件。
  3. 字符串数组argv必须以NULL结尾

代码实现

#include <unistd.h>
int main(int ac,char* argv[])
{
    char** arglist=(char**)calloc(ac,sizeof(char*));
    int i;
    /*argv[0]是myshell,不用写到arglist里,其他的按序写进arglist*/
    for(i=0; i<ac-1; i++)
    {
        arglist[i]=argv[i+1];
    }
    arglist[ac-1]=0;    //arglist以NULL结尾
    execvp(argv[1],arglist);
    return 0;
}

截图

这里写图片描述

在写这段代码的时候偶然发现,只include<stdio.h>,execvp函数仍可以正常使用。
遗留问题:那个“总用量 100”是什么鬼?

参考文献《Unix/Linux编程实践教程》

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值