exec()族函数的问题

依然听风 2014-01-18 02:55:32
我从书上看到exec()函数族是用来创建一个新进程的。使用exec()比较普遍的一种方法是先使用fork()函数分叉进程,然后在新的进程中调用exec()函数,这样exec()会占用与原来一样的系统资源来运行。
现在我有一个问题是:如果用exec()函数创建的新的进程所需要的系统资源要比原来的系统资源多的话,那新的进程是不是就无法创建成功了?如果是这样的话,我要创建一个很大的进程,那怎么办?
...全文
165 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
依然听风 2014-01-24
  • 打赏
  • 举报
回复
原来是这样子啊,多谢楼上两位,疑惑解开了
u010599631 2014-01-23
  • 打赏
  • 举报
回复
exec函数族的函数执行成功后不会返回,因为调用进程的实体,包括代码段,数据段和堆栈等都已经被新的内容取代,只留下进程ID等一些表面上的信息仍保持原样,所以你有点误解了。 fork之后假设有A和B两个进程,A和B的进程资源是一样的,但是当B调用exec("X")之后,B的进程资源会被新的进程(也就是X)所取代,以后B的内容就变为X的实例了。
yong_f 2014-01-23
  • 打赏
  • 举报
回复
fork函数复制一进程的。所以调用fork后系统是两个一样的进程,如果其中的一个进程调用exec那么以前那个进程信息及资源都会释放,操作系统再重新为新的进程申请资源的
依然听风 2014-01-22
  • 打赏
  • 举报
回复
木有人吗?自己先顶一下~

23,217

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧