3

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

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

4

3 回答 3

5

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

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

于 2012-09-27T15:06:50.167 回答
4

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

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

于 2012-09-27T15:06:27.503 回答
1

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

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

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

通过文件进行进程间通信

于 2012-09-27T15:10:31.213 回答