标签:zhang 伪代码 lock 解决 art 参数 虚拟机 sky 执行命令
shell
shell
俗称壳,它是一个命令解析器,是用户和Linux内核之间的接口程序。shell
输入命令,shell
通过计算机中的的一些程序,将命令转换成计算机懂的语言,让计算机执行某种程序。bash
shell
比作是浏览器,而bash
是谷歌浏览器shell
,bash
就是其中最为通用的一种bash
有很灵活和强大的编程接口,同时又有很友好的用户界面bash
部分我在网上查找了很多资料:
Mybash
man bash
查看shell
中执行命令的流程都是bash
进程创建了一个子进程,然后子进程进程替换,替换为可执行的命令文件。fork
:
fork
函数返回0,在父进程中,fork
返回新创建子进程的进程ID。fork
返回的值来判断当前进程是子进程还是父进程。exec
:
exec
函数会取代执行它的进程, 也就是说, 一旦exec
函数执行成功, 它就不会返回了, 进程结束. 但是如果exec
函数执行失败, 它会返回失败的信息, 而且进程继续执行后面的代码exec
会放在fork()
函数的子进程部分, 来替代子进程执行啦, 执行成功后子程序就会消失, 但是执行失败的话, 必须用exit()
函数来让子进程退出wait
:
pid_t wait(int *status)
: 成功:清理掉的子进程ID;失败:-1 (没有子进程)while(1)
{
输出用户的ID,等数据;
用户输入命令;
创建子进程;
执行命令;
等待命令执行结束;
}
ls
、pwd
在进行编译时出现
解决办法:查阅后发现少了两个头文件:
pwd.h
和sys/wait.h
,程序中需要输出用户的虚拟机的用户ID等数据,就需要口令文件pwd.h
,在开始就调用进程需要进程控制文件sys/wait.h
来提供类型pid_t的定义。
标签:zhang 伪代码 lock 解决 art 参数 虚拟机 sky 执行命令
原文地址:https://www.cnblogs.com/besty-zyx/p/10016006.html