【问题标题】:Start process in C++ on linux with enviroment variable C++使用环境变量 C++ 在 Linux 上的 C++ 中启动进程
【发布时间】:2012-12-16 23:48:54
【问题描述】:

如何使用环境变量 LD_PRELOAD=/test/lib.so 在 C++ 中启动 linux 上的进程,我知道我应该使用函数 execl 函数但我使用它时出错

谢谢!

【问题讨论】:

  • 你能贴出你的代码和错误吗?
  • 您应该使用 execle() 或 execvpe() 而不是 execl。这些调用允许您指定环境。
  • 通常VAR=value ./yourProgram就够了,但是如果在你的程序中使用VAR,这是一个解决方案,不要指望这会在系统级别运行。

标签: c++ linux environment-variables


【解决方案1】:

man execle 显示如何启动进程。您设置环境并将其传递给execle()

char *envp[] = { "LD_PRELOAD=/test/lib.so", "HOME=/home/olaf", NULL };
execle("/path/to/program", "program", "argument1", "argument2", NULL, envp);

【讨论】:

  • @ivan 感谢您找到丢失的NULL
猜你喜欢
  • 1970-01-01
  • 2021-01-30
  • 1970-01-01
  • 2021-12-10
  • 1970-01-01
  • 2016-07-19
  • 2010-11-24
  • 2011-08-17
  • 1970-01-01
相关资源
最近更新 更多