head.h
#ifndef __HEAD_H__
#define __HEAD_H__
#include<stdio.h>
#include<sys/types.h>
#include<sys/shm.h>
#include<string.h>
#endif
shma.c
#include"head.h"
int main(int argc, const char *argv[])
{
int flag=0;
key_t ft;
ft = ftok("./gu/",2);
int shmid = shmget(ft,512,IPC_CREAT|0664);
void *shaddr = shmat(shmid,NULL,0);
while(1){
flag = *(int*)shaddr;
if(0==flag){
// char str[7];
char *par = (char*)(shaddr+4);
// char ch[7]={0};
int i;
char c;
for(i=0;i<3;i++)
{
c=*(par+i);
*(par+i)=*(par+6-i);
*(par+6-i)=c;
}
//strcpy((char*)(shaddr+4),str);
*(int*)shaddr=1;
}
}
return 0;
}
shmb.c
#include"head.h"
int main(int argc, const char *argv[])
{
int flag=0;
key_t ft;
ft = ftok("./gu/",2);
int shmid = shmget(ft,512,IPC_CREAT|0664);
void *shaddr = shmat(shmid,NULL,0);
while(1){
flag = *(int*)shaddr;
if(1==flag){
char *par = (char*)(shaddr+4);
char ch[7]={0};
int i;
for(i=0;i<7;i++)
{
ch[i]=*(par+i);
}
printf("%s\n",ch);
*(int*)shaddr=0;
}
}
return 0;
}