当前位置: 技术问答>linux和unix
多进程中的全局变量问题,多谢帮忙!!!!
来源: 互联网 发布时间:2015-12-22
本文导语: 我编了一个用信号量实现多进程间通信的程序,其中定义了一个“全局变量”数组,我本来是这样想的:在任一个子进程中改变了该“全局变量”的值后,其他子进程中该“全局变量”的值也相应发生发生改变。 但...
我编了一个用信号量实现多进程间通信的程序,其中定义了一个“全局变量”数组,我本来是这样想的:在任一个子进程中改变了该“全局变量”的值后,其他子进程中该“全局变量”的值也相应发生发生改变。
但是经试验后发现该“全局变量”会被各个子进程复制,只有该子进程中的变量改变,其他进程中的“全局变量”保持不变。
请问具体怎样做才能使其达到各进程共用同一变量的效果?请大家帮忙讲一下,谢谢了
但是经试验后发现该“全局变量”会被各个子进程复制,只有该子进程中的变量改变,其他进程中的“全局变量”保持不变。
请问具体怎样做才能使其达到各进程共用同一变量的效果?请大家帮忙讲一下,谢谢了
|
Share Memory
|
用共享内存吧,请看一下 shmop, shmget,shmctl,shmat,shmdt这几个函数。
|
请问共享内存可以和semaphore一起用吗?
=======================================
当然可以,semaphore一般可以用来限制多进程同一时间点操作同一块内存,你最好也用到semaphore
=======================================
当然可以,semaphore一般可以用来限制多进程同一时间点操作同一块内存,你最好也用到semaphore
|
共享内存不错,但操作有些麻烦
其实用命名管道也挺好用的
其实用命名管道也挺好用的