linux应用程序中执行另外一个进程execl

2018-11-07  本文已影响0人  嵌入式工作

1.单独运行hh

test@ubuntu:~/test$ ./hh
asctime :Tue Nov  6 19:23:06 2018

ctime:Tue Nov  6 19:23:06 2018

2 运行execl,在execl中调用hh


test@ubuntu:~/test$ gcc -o ex execl_fun.c 
test@ubuntu:~/test$ ./ex

==============start execl==============
asctime :Tue Nov  6 19:23:51 2018

ctime:Tue Nov  6 19:23:51 2018

test@ubuntu:~/test$ 

3exel演示代码

#include<unistd.h>
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <math.h>

int main(void)
{
 
    printf("\n==============start execl==============\n");
    if(execl("./hh","hh",NULL)<0)
    {
        printf("********execl err***********\n");
        exit(1);
        
    }
    printf("\n==============end execl and exit(0)==============\n");
    exit(0);
}


4总结,execl调用另外一个进程以后,除了进程号不改变以外,其他所有的改变(包含堆栈,数据段,代码段)

上一篇 下一篇

猜你喜欢

热点阅读