Linux系统编程之程序的执行(exec函数族)

Linux系统编程之程序的执行(exec函数族),第1张

程序文件存储在磁盘上,当系统需要执行程序时将其加载至内存中形成进程。我们程序员可以通过一些调用,使进程能以全新的程序来替换当前运行的程序。

Linux环境下使用exec()函数执行一个新的程序,该函数在文件系统中搜索指定路径的文件,并将该文件内容复制到调用exec()函数的地址空间,取代原进程的内容。

exec()函数原型,如下(其实有很多,其实大部分使用方式都是大同小异的...)

参数其实很简单,一个要pathname也就是要执行的程序的环境变量后面是这个程序的参数(系统自带的可执行程序如,ls,cp,cat 等),另一个是要filename也就是要执行的程序的文件名后面是这个程序的参数。

execlp():

execl()

1、同一脚本文件中的函数:

#!/bin/sh

function func1()

{

echo $1

}

func1 "Hello world!"

2、其它脚本文件中的函数:

func.sh文件内容如下(其中定义了函数func1,需要1个参数):

#!/bin/sh

function func1()

{

echo $1

}

主程序脚本:

#!/bin/sh

. func.sh

func1 "Hello world!"

1.运行:

本文使用一个简单的C程序(simple.c)。代码如下:

int main()

{

return(0)

}

2. 编译:

~#gcc -o simple simple.c

3. 查看可执行文件的基本信息

~#objdump -f simple

simple: file format elf32i386 architecture: i386, flags 0x00000112: EXEC_P, HAS_SYMS, D_PAGED start address 0x080482d0借助objdump这个工具,可以获得可执行文件的一些关键信息。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8688042.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-19
下一篇 2023-04-19

发表评论

登录后才能评论

评论列表(0条)

保存