#include <stdlib.h>
//#include <stdio.h>
#include <fcntl.h>
#include <sys/mman.h>
#include <inttypes.h>
int main()
{
int fd , status;
void* bufferno;
char buffer1[20];
char bufferstr[50]={0};
char bufferold[50]={0};
//pid_t pid;
//pid = fork();
fd = shm_open("/swd_es", O_RDWR | O_CREAT, 0777);
if (fd==-1)
{
perror("shm_creator");
return EXIT_FAILURE;
}
status = ftruncate(fd, 100);
if (status!=0)
{
perror("shm_creator");
return EXIT_FAILURE;
}
bufferno = mmap(0, 100, PROT_READ, MAP_SHARED, fd, 0);
if( bufferno == MAP_FAILED)
{
perror("shm_user");
return EXIT_FAILURE;
}
printf("shm_user: %s\n", bufferno);
//munmap (bufferno, sizeof (bufferno));
sprintf(bufferold, bufferno);
int i=0;
//for(int i=0;i<1000000;i++)
do
{
bufferno = mmap(0,100,PROT_READ | PROT_WRITE, MAP_SHARED,fd, 0);
if( bufferno == MAP_FAILED)
{
perror("shm_user");
return EXIT_FAILURE;
}
sprintf(bufferstr, bufferno);
if (strcmp (bufferstr,bufferold) != 0)
{
sprintf(bufferold, "");
sprintf(bufferold, bufferno);
printf("shm_user: %s\n", bufferno);
//munmap (bufferno, sizeof (bufferno));
scanf("%s\n",buffer1);
sprintf(bufferno,buffer1);
sprintf(bufferold, "");
sprintf(bufferold, bufferno);
}
//////////////////////////////////////////
/*bufferno = mmap(0,100,PROT_READ | PROT_WRITE, MAP_SHARED,fd, 0);
if (bufferno==MAP_FAILED)
{
perror("shm_creator");
return EXIT_FAILURE;
}
scanf("%s\n",buffer1);
sprintf(bufferno,buffer1);*/
//buffer=i;
//i++;
}while(1);
return EXIT_SUCCESS;
}