posts - 297,  comments - 15,  trackbacks - 0
     要执行一个简单命令 shell 首先复制自身,然后 shell 等待实际上执行命令的 subshell (子shell)完成,在 subshell 中做重定向和执行 exec 系统调用,用指定程序的代码段和数据段替代 shell 代码段和数据段,进程 id 等元信息不变。 
     管道线 a | b 执行:shell 创建一个管道,复制一个 subshell, 在其中把输出标准重定向到管道写端然后 exec a,shell 不等待这个 subshell 执行完成; shell 接着复制一个 subshell,在其中把标准输入重定向到管道读端然后 exec b, shell 等待它这个 subshell 完成。 
     在 (...) 方式执行命令时候涉及到进一步的进程复制,shell 在复制 subshell 之后不等待其完成;subshell 在执行除了最后一个命令之外所有命令的时候都复制一个 subsubshell,在其中做重定向和 exec, subshell 在自身中重定向和 exec 最后一个命令.                  如果管道由 subshell( exec a) 创建,那么subshell(exec b)就无法通过继承得到该管道描述符,从而进行重定向,那么只能使用使用named pipe了? 
from:linuxforum
posted on 2010-02-13 23:42 chatler 阅读(649) 评论(0)  编辑 收藏 引用 所属分类: Shell

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2010年2月>
31123456
78910111213
14151617181920
21222324252627
28123456
78910111213

常用链接

留言簿(10)

随笔分类(307)

随笔档案(297)

algorithm

Books_Free_Online

C++

database

Linux

Linux shell

linux socket

misce

  • cloudward
  • 感觉这个博客还是不错,虽然做的东西和我不大相关,觉得看看还是有好处的

network

OSS

  • Google Android
  • Android is a software stack for mobile devices that includes an operating system, middleware and key applications. This early look at the Android SDK provides the tools and APIs necessary to begin developing applications on the Android platform using the Java programming language.
  • os161 file list

overall

搜索

  •  

最新评论

阅读排行榜

评论排行榜