这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » linux进程操作之进程的调用之一 execl

共1条 1/1 1 跳转至

linux进程操作之进程的调用之一 execl

专家
2016-01-20 22:15:04     打赏

    linux系统的进程调用可以有很多方法,今天来介绍下execl()函数。首先我们看例子:

  

#include
#include
int main()
{
   execl("/home/carl.ma/hello.exe",NULL);

   printf("pid=%d\n",getpid());

}

 

讲解:

execl()创建的进程完全代替远进程。新程序则从其main函数开始执行。因为调用exec并不创建新进程,所以前后的进程ID并未改变。exec只是用另一个新程序替换了当前进程的正文、数据、堆和栈段。

     前后进程ID未改变,所以我们可以向该ID发送消息,控制一个不相关的可执行文件。

上面程序中,我在home/Carl。ma的目录下建立了一个hello的程序(该程序由cygwin编译过,可直接运行)利用execl进行调用该程序,运行结果只打印出了hello(因为hello。exe只打印hello)而没有打印出进程ip,这就印证了上面说的该进程完全被新进程代替,而不向下执行。



共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]