Re: [問題] 在linux平台上使用 system() 去呼叫應ꔠ…
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
Programming 近期熱門文章
PTT數位生活區 即時熱門文章