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

Posted

技术标签:

【中文标题】是否可以将变量从一个进程传递到另一个进程?【英文标题】:Is is possible to pass a variable from one process to another? 【发布时间】:2012-09-27 15:05:27 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

如果第二个进程是从第一个进程开始的,你可以将它作为命令行参数传递。

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

你可以看看这个其他帖子:

Interprocess Communication via file

【讨论】:

以上是关于是否可以将变量从一个进程传递到另一个进程?的主要内容,如果未能解决你的问题,请参考以下文章

将变量从linux内核传递给进程

如何将 SecureString 从一个进程传递到另一个进程?

将数据从 Windows 挂钩传递到另一个进程的最佳方法是啥?

Dart:如何通过流将数据从一个进程传递到另一个进程

如何使用 WCF 将数据从一个进程传递到另一个进程?

如何实现从一个进程到另一个进程的即发即弃消息传递?