【问题标题】:What happens to the current program after execv function call? [closed]execv 函数调用后当前程序会发生什么? [关闭]
【发布时间】:2016-05-06 07:13:42
【问题描述】:

假设在我的程序中的某个时刻我正在使用execv 并且该函数成功运行。现在我的程序变了。它究竟是怎么回事? (所有的内存都会被自动擦除吗?)

【问题讨论】:

标签: c memory posix execv


【解决方案1】:

execve() 成功后不返回,调用进程的文本、数据、bss、栈被加载的程序覆盖。

也就是说,当前进程的所有数据都将消失,新的程序被加载到内存中,替换原来的进程。

【讨论】:

  • 例如,如果你 fork 一个进程并从“子代码” malloc() 一些内存,然后调用 execv(),则不需要 free() 它。对吗?
  • @LiorGolan 没错。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-09-19
  • 1970-01-01
  • 1970-01-01
  • 2011-12-18
  • 1970-01-01
  • 2011-04-11
  • 2018-07-23
相关资源
最近更新 更多