中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > C/C++
请教如果使用exec执行新的进程参数含有套接口描述字可以吗?
作者:未知 时间:2005-09-13 19:26 出处:ChinaUnix.net 责编:chinaitpower
              摘要:请教如果使用exec执行新的进程参数含有套接口描述字可以吗?

执行的子进程可以使用此描述子吗??

 lenovo 回复于:2003-11-20 17:35:06
[quote:8dbcbc400c="dysnake"]执行的子进程可以使用此描述子吗??[/quote:8dbcbc400c]
应该是不行的。

 dysnake 回复于:2003-11-20 17:35:33
没人试过吗,我记得在那儿看到在某种情况是不行的必须使用管道传输。
谁知道??斑竹知道吗??
     

 lenovo 回复于:2003-11-20 17:37:11
[quote:3e86f501ec="dysnake"]没人试过吗,我记得在那儿看到在某种情况是不行的必须使用管道传输。
谁知道??斑竹知道吗??
     [/quote:3e86f501ec]
呵呵,我也记得说是可以用管道传送,
我也没用过。

 dysnake 回复于:2003-11-20 17:39:38
我也记得不行,但是我的领导说可以,看来必须作个实验。

 river_wave 回复于:2003-11-20 17:44:33
可以!

 dysnake 回复于:2003-11-21 08:05:30
是否说明exec的参数传入相近于管道传入??

 river_wave 回复于:2003-11-21 09:17:47
跟管道无关,只是参数的传递;不过exec的参数全是字符型的,必须转换

 非常开心 回复于:2003-11-21 11:07:27
老兄,完全没有问题,尽管用好了,我曾经这样用过!
主进程得到一个连接socket,然后exec 其他程序,将socket描述符当作参数传递过去,一点问题都没有:) 不过参数要转换成字符串的

 dysnake 回复于:2003-11-21 14:02:44
是强制转换??新进程再转换回来??

 罗格纳 回复于:2003-11-21 15:58:37
进程exec后,还是同一个进程,打开的描述字都不变,只是代码空间被覆盖,所以要把描述字传给exec(只是告诉exec进程,它打开过该描述字)。exec还有一些选项可以禁止描述字的传递。

 dysnake 回复于:2003-11-21 16:11:06
不知道理解的对不对。当fork后原先进程的所有的描述字子进程都继承了一套。exec函数执行后将进程的所有描述子及资源重新分配,因此原先的描述子关闭exec后的进程是无法使用的。
         

 罗格纳 回复于:2003-11-21 17:05:38
先要明确描述字的打开状态和描述字的值。
对于一个处于打开状态的描述字,进程可以通过描述字的值来访问。
在exec之前打开的描述字,在exec之后仍处于打开状态,只是不知道描述字的值而已(因为代码空间被覆盖)。因此只要把描述字的值传给exec就可以了。(不需要再次打开!)

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有