退出进程:
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)