作者ggg12345 (ggg)
看板Programming
标题Re: [问题] 在linux平台上使用 system() 去呼叫应ꔠ…
时间Mon Aug 27 13:26:01 2007
※ 引述《ineedhope (ineedhope)》之铭言:
: 标题: [问题] 在linux平台上使用 system() 去呼叫应ꔠ…
: 时间: Sat Aug 25 12:18:23 2007
: 现在想在linux平台上使用system()去呼叫一个应用程式
: 用qt以c++去写视窗介面
: 在程式中我这样写
: system("debussy"); // debussy是一套 tool
: 可是因为不能正常 check out license
: 後来去看才发现....
: 从qt呼叫debussy的时候,debussy会去check out license.csh的路径
:
: license.csh 里写着
: set VENDOR_HOME = /usr/cad/spring_soft/
: set LM_LICENSE_FILE = ${VENDOR_HOME}/CIC/license.csh
:
: 可是却不能正确的解读
: 解读出来的结果变成
: LM_LICENSE_FILE = /CIC/license.csh
:
: 导致没有办法check out licesnse successfully,tool就无法开启。
: --
:
※ 发信站: 批踢踢实业坊(ptt.cc)
: ◆ From: 219.68.222.91
: ※ 编辑: ineedhope 来自: 140.116.187.216 (08/25 15:17)
: 推 clplayer:${VENDOR_HOME}改成/usr/cad/spring_soft 125.232.67.88 08/26 00:52
这表示执行 debussy 时要用到 set environment 变数.
使用 system() , 似乎是继承执行 c++ system call 时的 shell 设定.
其一是执行前先把完整路径的 env set 先设好, 使之继承.
另一是使用 execve() 这种尾字是 "e" 的 execute system call, 她可以
在程式内给 string env 用以设定 environment 给要执行时的程式.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.1.146