作者d2207197 (铁拳无敌孙中山)
看板C_and_CPP
标题Re: [问题] GNU C使用 system 呼叫外部程式的问题
时间Thu Apr 6 20:15:31 2006
※ 引述《bestard (幸福好难)》之铭言:
: sprintf(buf,"csh -c \"source abc.env\";csh -c \"123 -f work.scr\"");
: system(buf);
: 感觉system指令呼叫时每个指令列是一个单独的执行绪, 虽然source
: 环境档了, 可是 123 的环境设定还是没有启动. 请问各位先进我该怎麽修改呢?
: 谢谢
因为您跑 csh -c "source abc.env" 时,确实启动了 csh,并载入了 abc.env
但是环境变数等等只会往子 process 传承下去,跟父 process 无关,跟兄弟 process
也无关。您的 abc.env 只会影响到 source abc.env 的那个 csh,以及之後从那个 csh
执行的其他程式。对後面的另一个 csh 完全没有关系。
所以,用一个 csh 跑就好啦
csh -c \"source abc.env ; 123 -f work.scr\"
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.138.242.104
1F:推 bestard:阿..原来是这样..我怎麽好像老是小细节都没想到...= = 04/07 09:26
2F:→ bestard:谢谢大大指点阿~ ^^ 04/07 09:27