【发布时间】:2012-07-18 15:25:46
【问题描述】:
我正在一个项目中工作,脚本将在 Linux 下运行。它有许多用 C++ 编写的模块。我需要从 PHP 中调用这些模块。
我的问题如下:
- 我的模块是软件包中的模块之一。
- 我们的软件有 PHP 层来获取用户输入并将其存储在数据库中,并在需要时调用 C++ 引擎。
- 所有模块都在运行并使用一些由基本模块设置的环境变量。
- 有一层 PHP 通过我们将用户输入获取到我们的 C++ 引擎。
- 我需要从 PHP 调用一个应用程序 (abc.out),它将填充数据库。
问题是我必须在应用程序运行之前设置一个新的环境变量。
我正在使用getenv() 获取旧环境变量,然后将路径附加到它并再次设置。我已经使用putenv() 设置了新的环境变量。
设置环境变量后,我使用system() 从 PHP 调用该应用程序,它正在工作。
我怀疑这个环境变量更改是否会影响正在运行的其他模块。
有一件事是,如果我们使用system() 进行多个操作,我可以设置环境变量并从同一个system() 调用中调用我的应用程序。这里我怀疑这是否也会影响正在运行的其他应用程序,或者仅影响使用system() 调用的特定应用程序。
即system() 是为每个程序创建一个新会话,我们称之为或不调用它?
谢谢
【问题讨论】: