|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
exec函数族* ?2 S8 y/ Z: L2 T
{2 |, P& D* M: ?6 p0 T
函数族说明
, C) s. Y M% {* W$ D- w1 r I. W3 c1 I, H
fork() 函数用于创建一个新的子进程,该子进程几乎复制了父进程的全部内容,但是,这个新创建的子进程如何执行呢?exec 函数族就提供了一个在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,在执行完之后,原调用进程的内容除了进程号外,其他全部被新的进程替换了。另外,这里的可执行文件既可以是二进制文件,也可以是Linux下任何可执行的脚本文件。
5 t+ y- x4 T6 G. \7 R) A: U6 Q& ?: U$ C' v
在 Linux 中使用exec函数族主要有两种情况:4 j' E) q0 H6 r" ~% p1 A# a! B
2 G) w" k0 j" M* r
● 当进程认为自己不能再为系统和用户做出任何贡献时,就可以调用 exec 函数族中的任意一个函数让自己重生。* z" h) h5 |6 U
, f6 u! |1 \! @% `2 r9 x ● 如果一个进程想执行另一个程序,那么它就可以调用 fork() 函数新建一个进程,然后调用 exec 函数族中的任意一个函数,这样看起来就像通过执行应用程序而产生了一个新进程(这种情况非常普遍)。
- @$ b! r* F& u# X' ~7 u5 t) q; ^0 p6 ]7 j0 H4 [$ y8 M
函数族语法
1 `( u' s5 `) _" P i
# O- Z7 ^* [7 Z: h 实际上,在Linux中并没有exec()函数,而是由6个以 exec 开头的函数,它们之间的语法有细微差别。下表列出了 exec 函数族的6个成员函数的语法:
" m8 \# d" C$ d2 J- g. h
9 ~# i* m4 [# ^1 L2 c) h |
|