Re: [問題] 在linux平台上使用 system() 去呼叫應ꔠ…

看板Programming作者 (ggg)時間18年前 (2007/08/27 13:26), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《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
文章代碼(AID): #16qc1gUb (Programming)
文章代碼(AID): #16qc1gUb (Programming)