因为调用exec并不创建新进程,所以前后的进程ID并未改变。exec只是用一个全新的程序替换了当前进程的正文、数据、堆和栈段。
exec函数函数:通常exec函数不返回,成功的调用会调转到新程序的入口点作为结束,而刚刚才被运行的代码是不会存在于进程进程的地址空间中。
exec函数调用,改变哪些属性:
- 任何挂起的信号都被丢失;
- 捕捉的任何信号会被还原为缺省的处理方式;
- 任何内存的锁定都会丢失;
- 多数线程的属性会被还原到初始值;
- 多数关于进程的统计信息会复位。
- 与进程内存相关的任何数据都会丢失,包括映射的文件。
- 包括C语言函数库的一些特性,独立存在于用户空间中的数据都会被丢失
没有改变:
- 各种ID;pid ppid
- 优先级 、用户组等