退出进程 替换接口

退出进程:

1.main函数中return;2.
2.库函数exit;
3.系统调用接口_exit;

perror:

strerror:

获取系统错误原因;

替换:

加载一个新的程序到内存中,更新当前进程的页表映射信息到新的程序上,初始化页表,初始化虚拟地址空间。
希望子进程能完成一个新的任务。多进程更加稳定。

替换接口:

系统调用接口:execve

库函数:execl/execlp/execle/execv/execvp

l和v:参数赋予方式不同,l是一个一个的赋予,v是一个参数数组
p:是否需要带路劲,有p不带路径;
echo $PATH 打印的路劲下的不用带路径;
e:是否自己设置环境变量,有要设置,无,默认

.
.

从零开始写一个minishell:

思路:
shell:命令行解释器
1.捕捉键盘输入;
2.解析输入信息-命令名称-运行参数
创建子进程
让子进程执行对应的名称的程序(程序替换)
子进程替换失败必须退出,成功运行完命令程序会自动退出
进行子进程等待;防止僵尸进程;(waitpid)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值