社区
Linux/Unix社区
帖子详情
exec()族函数的问题
依然听风
2014-01-18 02:55:32
我从书上看到exec()函数族是用来创建一个新进程的。使用exec()比较普遍的一种方法是先使用fork()函数分叉进程,然后在新的进程中调用exec()函数,这样exec()会占用与原来一样的系统资源来运行。
现在我有一个问题是:如果用exec()函数创建的新的进程所需要的系统资源要比原来的系统资源多的话,那新的进程是不是就无法创建成功了?如果是这样的话,我要创建一个很大的进程,那怎么办?
...全文
224
4
打赏
收藏
exec()族函数的问题
我从书上看到exec()函数族是用来创建一个新进程的。使用exec()比较普遍的一种方法是先使用fork()函数分叉进程,然后在新的进程中调用exec()函数,这样exec()会占用与原来一样的系统资源来运行。 现在我有一个问题是:如果用exec()函数创建的新的进程所需要的系统资源要比原来的系统资源多的话,那新的进程是不是就无法创建成功了?如果是这样的话,我要创建一个很大的进程,那怎么办?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用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
打赏
举报
回复
木有人吗?自己先顶一下~
笔记整理—linux进程部分(3)wait工作原理与
exec
族
函数
整理一下学习的内容,个人观点可能存在错误。对linuxwait的工作原理进行了粗浅的介绍并引出waitpid
函数
,又因为使用if去判断pid号进行不同进程的书写具有重复性,所以引出了
exec
族
函数
。
unix中的
exec
族
函数
介绍
介绍unxi系统的
exec
类
函数
Linux进程——
exec
族
函数
、
exec
族
函数
与fork
函数
的配合
然后再调用
exec
l,用
exec
l 找到并执行echoarg,将当前进程main替换成进程echoarg,就会执行ehcoarg里面的代码,所以”after
exec
l” 没有在终端被打印出来。不会执行if中的代码。可见echoarg存在于当前路径并不存在于bin路径下,所以调用
exec
l
函数
无法找到echoarg并执行echoarg,调用失败返回值为-1,则会继续执行if
函数
里的代码。定义一个指针数组并将其地址作为
exec
vp
函数
后面的参数,同时要以NULL结尾,便可以找到并执行ls可执行文件。
Linux系统编程之进程(
exec
族
函数
)
功能:在调用进程内部执行一个可执行文件。可执行文件既可以是二进制文件,也可以是任何Linux下可执行的脚本文件。
函数
族
:
exec
函数
族
分别是:
exec
l,
exec
lp,
exec
le,
exec
v,
exec
vp,
exec
vpe
函数
原型:SYNOPSIS返回值:
exec
函数
族
的
函数
执行成功后不会返回,调用失败时,会设置errno并返回-1,然后从原程序的调用点接着往下执行。参数说明:path:可执行文件的路径名字。
Linux进程——
exec
族
函数
linux
Linux/Unix社区
23,224
社区成员
74,535
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章