2012-09-27 65 views
3

比方说,我有2个进程,我有一个变量,我想从第一个传递到第二个。我知道我可以声明一个全局变量并通过不同函数之间的引用来传递它,但我不知道是否有可能在不同进程之间传递一个变量。可以将变量从一个进程传递到另一个进程吗?

听说每个进程被分配其自己的虚拟存储器的一部分,并且一个进程不能访问另一个进程的内存空间。这是真的吗?或者实际上两个进程可能共享一个变量,因此需要互斥机制?

回答

5

我不知道是否有可能通过不同进程之间的变量。

不,这是不可能的,至少不是传统意义上的传递变量。你有很多选择,但:进程间通信可以通过共享内存(有时是通过内存映射文件执行),命名管道等进行

4

或者实际上两个进程共享一个变量是可能的,因此需要互斥机制?

是的,你应该查找共享内存,或者更普遍的IPC /进程间通信。

1

如果第二个过程是从第一个开始,你可以通过它作为命令行参数。

否则,你应该依靠一些进程间通信的方法(比如Socket或FIFO,也称为命名管道)。

你可以看看这个其他职位:

Interprocess Communication via file

相关问题