C语言exec 簇函数注意事项

exec函数簇在运行的时候是将原进程的映像替换成新的执行进程的,所以如果直接在一个进程中,即main函数中调用execl, execp等函数,主进程会被替换掉,exec簇函数后面的内容将不会被执行,所以如果要使用此函数,可以fork一个子进程来运行。

同样地,在线程中调用了此类函数,主进程的所有映像也一样会替换掉,因为线程没有独立地址空间,进程有,而exec簇函数会改变进程的映像,只能拿线程所在的进程下手。

exec类函数相关信息参照:execl(3) – Linux man page

原文:

Description

The exec() family of functions replaces the current process image with a new process image