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繼承變量並對其進行更改。現在,變量值不應在父進程中更改(猜測它是簡單的邏輯)。 –