0
{
set GAME=CRICKET"
if(fork()=0)
{
set GAME="FOOTBALL"
echo $GAME
}
sleep(5);
echo $GAME
}
我的问题是,游戏是继承到孩子和改变。 现在父母中的GAME发生了什么? “CRICKET”是否仍然保持不变?Unix变量继承使用
{
set GAME=CRICKET"
if(fork()=0)
{
set GAME="FOOTBALL"
echo $GAME
}
sleep(5);
echo $GAME
}
我的问题是,游戏是继承到孩子和改变。 现在父母中的GAME发生了什么? “CRICKET”是否仍然保持不变?Unix变量继承使用
Unix环境变量是特定于进程的。
当你分叉一个进程时,这个孩子得到一个父母环境的副本。
孩子做出的任何改变都会影响到它的副本,并且不会影响到父母的环境变量。
为什么问“当我运行这个代码时会发生什么?” - 只需自己运行并看看! –
我无法捕捉这里使用的语言,但如果你假装它是C,答案是“是的,它仍然没有改变”。 – Netch
@Netch:谢谢。其实我对unix中的变量继承的追求(不依赖于语言).Child Process继承变量并对其进行更改。现在,变量值不应在父进程中更改(猜测它是简单的逻辑)。 –