exec系统调用会从指定的文件中读取并加载指令,并替代当前调用进程的指令.从某种程度上来说,这样相当于丢弃了调用进程的内存,并开始执行新加载的指令. exec系统调用会保留当前的文件描述符表单.所以任何在exec系统调用之前的文件描述符,例如0,1,2等.它们在新的程序中表示相同的东西. 通常来说exec系统调用不会返回,因为exec会完全替换当前进程的内存,相当于当前进程不复存在了,所以exec系统调用已经没有地方能返回了. 在运行shell时,我们不希望系统调用替代了Shell进程,实际上,…