当前位置:  技术问答>linux和unix

怎样用execve()运行一个在RAM中的可执行文件

    来源: 互联网  发布时间:2015-10-23

    本文导语:  问题的背景是这样的: 有一个可执行文件,它是被压缩后存储在存储介质(如嵌入式系统中的flash)上的.现在想写一个引导程序把这个可执行文件调入内存进行解压,然后在内存中执行.想法是: 1. 把可执行文件解压到一个...

问题的背景是这样的:
有一个可执行文件,它是被压缩后存储在存储介质(如嵌入式系统中的flash)上的.现在想写一个引导程序把这个可执行文件调入内存进行解压,然后在内存中执行.想法是:
1. 把可执行文件解压到一个内存区域中;
2. 调用fork(),创建一个进程;
3. 调用 execve()执行这个解压后的可执行文件.

但execve()中的可执行文件参数为位于硬盘等文件系统中的可执行文件名,而现在它位于内存中.有没有办法为这个在内存中的可执行文件"创造"一个文件名,以便execve能够执行它?

|
你把内容写成一个磁盘文件不就可以了. 不过估计你还得按照可执行文件的格式
生成这个文件.

你也可以不用exec, 而是直接修改CPU的程序寄存器, 就像exec内部做的那样.
不妨参考一下exec的源码.

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • execv和execve在程序上的区别在哪里啊?
  • system和execv系列
  • execve系列函数的源码应该是在哪里?
  • fork, execv后 timer 失效
  • execv()??
  • 关于execv指令
  • execl execv有必要分成两个函数吗?
  • java开源软件 iis7站长之家
  • execve()函数怎么用?
  • execve函数的问题
  • shell程序、fork()函数、execve()函数之间什么关系?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3