2012-09-27 62 views
3

比方說,我有2個進程,我有一個變量,我想從第一個傳遞到第二個。我知道我可以聲明一個全局變量並通過不同函數之間的引用來傳遞它,但我不知道是否有可能在不同進程之間傳遞一個變量。可以將變量從一個進程傳遞到另一個進程嗎?

聽說每個進程被分配其自己的虛擬存儲器的一部分,並且一個進程不能訪問另一個進程的內存空間。這是真的嗎?或者實際上兩個進程可能共享一個變量,因此需要互斥機制?

回答

5

我不知道是否有可能通過不同進程之間的變量。

不,這是不可能的,至少不是傳統意義上的傳遞變量。你有很多選擇,但:進程間通信可以通過共享內存(有時是通過內存映射文件執行),命名管道等進行

4

或者實際上兩個進程共享一個變量是可能的,因此需要互斥機制?

是的,你應該查找共享內存,或者更普遍的IPC /進程間通信。

1

如果第二個過程是從第一個開始,你可以通過它作爲命令行參數。

否則,你應該依靠一些進程間通信的方法(比如Socket或FIFO,也稱爲命名管道)。

你可以看看這個其他職位:

Interprocess Communication via file

相關問題