exec函数-数据流图到模块结构图的直接转换方法

时间:2024-07-12 01:23:40
【文件属性】:

文件名称:exec函数-数据流图到模块结构图的直接转换方法

文件大小:5.82MB

文件格式:PDF

更新时间:2024-07-12 01:23:40

APUE UNIX

8.9 exec函数 8 . 3节曾提及用f o r k函数创建子进程后,子进程往往要调用一种e x e c函数以执行另一个程序。 当进程调用一种 e x e c函数时,该进程完全由新程序代换,而新程序则从其 m a i n函数开始执行。 因为调用e x e c并不创建新进程,所以前后的进程 I D并未改变。e x e c只是用另一个新程序替换了 当前进程的正文、数据、堆和栈段。 有六种不同的e x e c函数可供使用,它们常常被统称为 e x e c函数。这些e x e c函数都是U N I X进 程控制原语。用f o r k可以创建新进程,用e x e c可以执行新的程序。e x i t函数和两个w a i t函数处理 终止和等待终止。这些是我们需要的基本的进程控制原语。在后面各节中将使用这些原语构造 另外一些如p o p e n和s y s t e m之类的函数。 #include int execl(const char *p a t h n a m e, const char *a rg 0, ... /* (char *) 0 */); int execv(const char *p a t h n a m e, char *const a rgv [] ); int execle(const char *p a t h n a m e, const char *a rg 0, ... /* (char *)0, char *const e n v p [] */); int execve(const char *p a t h n a m e, char *const a rgv [], char *const envp [] ); int execlp(const char *f i l e n a m e, const char *a rg 0, ... /* (char *) 0 */); int execvp(const char *f i l e n a m e, char *const a rgv [] ); 六个函数返回:若出错则为- 1,若成功则不返回 这些函数之间的第一个区别是前四个取路径名作为参数,后两个则取文件名作为参数。当 指定f i l e n a m e作为参数时: 1 5 6 U N I X环境高级编程


网友评论