exec

招RD和QA 2002-11-14 01:27:36
这个命令有什么用,能否给个例子。3ks
...全文
97 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
azuretttc 2003-01-08
  • 打赏
  • 举报
回复
exec是系统原语,不使用时,需要新建一个进程(调用fork原语,并且要将父进程的数据COPY到子进程中,使用了EXEC后,直接覆盖父进程空间,因此提高了速度,节省了空间,可以看做调用子函数而不返回
招RD和QA 2002-11-19
  • 打赏
  • 举报
回复
我在<<The Unix Programming Enviroment>>看到这个命令,上面这样说
“使用exec主要是为了提高效率,没有exec,程序的运行也不会有问题。exec是一个内部命令,它用给定程序代替运行shell的进程,因此节省了一个shell进程,而一般这个进程要等到程序运行结束。”我不大明白这段话。

哪位能详细解释一下?
ari 2002-11-19
  • 打赏
  • 举报
回复
覆盖原进程的空间
不用拷贝源进程空间的东西,如代码段、指令段等等,exec进程直接使用
建冬 2002-11-18
  • 打赏
  • 举报
回复
常用于调用程序的时候,比如你在shell下面运行命令 example 的时候,
系统内部的过程大致是这样:


......

if (fork() == 0 ){
//新创建的子进程里
...
//下面的语句调用应用程序
exec( "example" );

exit(0);
}
else{
//这里是父进程
//父进程挂起等待子进程结束
wait(0);
}


exec 函数有好几个类似的内部调用,你可以参考<unix环境高级编程>这本书,挺不错的.
ari 2002-11-15
  • 打赏
  • 举报
回复
覆盖原进程的空间
一般fork 一子进程来调用exec
bambooman 2002-11-15
  • 打赏
  • 举报
回复
exec 用来运行某一程序,并且不再返回.
从功能上讲:
exec myprog

myprog
exit
类似

23,217

社区成员

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

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