1. 程式人生 > >linux的子程序呼叫exec( )系列函式

linux的子程序呼叫exec( )系列函式

exec( )函式族 :
   下面我們來看看一個程序如何來啟動另一個程式的執行。在Linux中要使用exec函式族。系統呼叫execve()對當前程序進行替換,替換者為一個指定的程式,其引數包括檔名(filename)、引數列表(argv)以及環境變數(envp)。exec函式族當然不止一個,但它們大致相同,在Linux中,它們分別是:execl,execlp,execle,execv,execve和execvp,下面我只以execlp為例,其它函式究竟與execlp有何區別,請通過manexec命令來了解它們的具體情況。
   一個程序一旦呼叫exec類函式,它本身就"死亡"了,系統把程式碼段替換成新的程式的程式碼,廢棄原有的資料段和堆疊段,併為新程式分配新的資料段與堆疊段,唯一留下的,就是程序號,也就是說,對系統而言,還是同一個程序,不過已經是另一個程式了。(不過exec類函式中有的還允許繼承環境變數之類的資訊。)