在监控程序中可以随时查看共享内存的信息~
#include <iostream>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <stdlib.h>
main()
{
while(1)
{
int i = 0;
int shm_id;
key_t key;
char* shm;
char* name = "/dev/shm/myshm1";
key = ftok(name,0);
if(key == -1)
{
//perror("ftok error");
}
shm_id = shmget(key,1000,IPC_CREAT);
if(shm_id == -1)
{
perror("shmget error");
return 0;
}
shm = (char*)shmat(shm_id,NULL,0);
if(strlen(shm)!=0)
{
std::cout<< shm << std::endl;
while(i<1000)
{
*(shm+i)='\0';
i++;
}
}
}
}
但是问题也来了~,如果总是while(1)来循环的话~会占用资源的~一旦用户数量多的话~就会崩溃了~
请问,用什么办法来控制,做到有消息就运行,没消息就sleep,请具体说明,谢谢了~
[求助]关于共享内存的监控