是否可以将变量从一个进程传递到另一个进程?

时间:2012-09-27 15:05:28

标签: c

假设我有2个进程,我有一个变量,我想从第一个传递到第二个。我知道我可以声明一个全局变量并通过引用在不同的函数之间传递它,但我不知道是否可以在不同的进程之间传递一个变量。

我听说每个进程都分配了自己的虚拟内存部分,并且一个进程无法访问另一个进程的内存空间。这是真的吗?或者两个进程实际上是否可以共享变量,因此需要互斥机制?

3 个答案:

答案 0 :(得分:5)

  

我不知道是否可以在不同进程之间传递变量。

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

答案 1 :(得分:4)

  

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

是的,您应该查找共享内存,或者更一般地说,查找IPC /进程间通信。

答案 2 :(得分:1)

如果第二个进程是从第一个进程启动的,则可以将其作为命令行参数传递。

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

您可以查看其他帖子:

Interprocess Communication via file