在成功调用 execlp() 后,您之前程序中的任何代码都不会再运行。进程的内存空间将被新进程覆盖。如果您仍然需要与子进程进行一些管理,则在调用 execlp() 之前,您需要调用 fork()。这将给您两个进程,并且您可以在两个进程之间进行通信。
exec*()函数替换调用它们的进程为提供作为参数的可执行文件。这意味着,如果execlp调用成功,那么发出调用的子进程将不再存在。因此,在execlp之后的任何printf语句只有在execlp调用失败时才能执行,这通常意味着请求的程序不存在。