标题:在linux版写了篇 用汇编写execve()系统调用的文字,尽量詳細了,欢迎吐槽
只看楼主
Devil_W
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:9
帖 子:1160
专家分:1797
注 册:2009-9-14
得分:0 
http://support.



Like all of the exec functions, execl replaces the calling process image with a new process image. This has the effect of running a new program with the process ID of the calling process.
2012-07-29 23:13
madfrogme
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:21
帖 子:1160
专家分:1106
注 册:2009-6-24
得分:0 
回复 11楼 Devil_W
刚才自己做了很多观察,本想把它们贴出来,

但发现越做越有意外出现,自己对进程之间的关系还是没明白

我想我应该能明白你贴出的那个连接的意思,又感觉不能完全理解

exec 的程序覆盖calling process的image

比如exec 去执行ls命令的时候,我用ps aux真的是找不到ls 的image的进程号,但
在程序里埋一个getpid()的话是能知道a.out的PID了
好像能感觉到是ls覆盖了a.out 这个calling process的image

但是exec 去执行/bin/sh的时候,因为spawn出了一个新的shell,埋入一个getpid(),发现这个shell的PID比a.out的PID大1,难道说明没有覆盖a.out的image??

可能说的不对,如果能给些这方面的情报的话真是非常感謝了,连接也很好了

The quieter you become, the more you can hear
2012-07-30 01:04



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-374314-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.522948 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved