【发布时间】:2016-04-15 14:21:11
【问题描述】:
当一个shell(例如bash)调用一个可执行文件时,它首先是fork本身,然后是它的副本execve这个可执行文件。
当shell调用内置命令时,不会创建新进程,execve只能对可执行文件进行操作,而内置命令不存储在可执行文件中。
那么内置命令是如何存储的,它们又是如何通过系统调用来调用的呢?
【问题讨论】:
-
这个问题表明您期望内置命令有点像外部可执行文件一样“启动”。为什么?它们是内置的。
-
对所有问题/答案都投了反对票。为什么会这样?
-
内建存储在可执行文件中,称为 bash。
-
添加到@pfnuesel:不仅对三个一致的答案投了反对票,而且根本没有评论解释为什么事情被反对了;这有点恼人,考虑到反对者(假设它是一个单一的选民)在他/她的意见中占少数
-
这是一个连续投票的案例,也是如此,没有留下任何评论。
标签: linux bash shell system-calls