请教:多进程共享内存问题
父进程创建了32个子进程,父进程负责向共享内存写数据,每个子进程都需要读取该共享内存里的数据并发送,问题是,如何实现 当所有子进程都读过该数据后,删除此数据。(不能一次性全删除,因为父进程会不停地写数据,子进程不停地读数据,发数据。每一份数据只需要每个子进程读一遍,所有子进程都读完后,删除。)
下面是父进程创建共享内存的代码。
下面是父进程创建共享内存的代码。
struct DATA_INFO
{
int iDataLen;
BYTE btData[1024];
};
vector<DATA_INFO> *pSendBufVector;
int shmid=shmget(IPCKEY,39452672,0640|IPC_CREAT|IPC_EXCL);
if(shmid==-1)
{
printf("shmget error\n");
return -1;
}
else
{
printf("shmget ok\n");
}
//将这块共享内存区附加到自己的内存段
pSendBufVector = (vector<DATA_INFO> *)shmat(shmid,NULL,0);
...全文
相关推荐
QT 多进程通信
用qt 写的一个多进程 通信的例子. 利用qprocess 启动多个外部进程,利用QSharedMemory共享内存 实现消息交换。如果跨机子就需要写socket了
通过共享内存实现多进程间的通信,共享数据
visual c++ vc通过共享内存实现多进程间的通信,共享数据
利用共享内存实现多进程的通信-C#
参考网上资源,修正了部分显示不正确,可以在多个程序之间使用共享内存,编程环境为VS2010.
python-多进程锁Lock和共享内存(1).docx
python-多进程锁Lock和共享内存(1).docx
电信设备-一种多进程使用共享内存进行通信的方法.zip
电信设备-一种多进程使用共享内存进行通信的方法.zip


