server.c
/*
* =====================================================================================
*
* Filename: proc.c
*
* Description:
*
* Version: 1.0
* Created: 2012年03月09日 20时27分27秒
* Revision: none
* Compiler: gcc
*
* Author: MaZheng (blog.csdn.net/mazheng1989), mazheng19891019@gmail.com
* Company: Dalian University Of Technology
*
* =====================================================================================
*/
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/shm.h>
#include <sys/ipc.h>
#include <stdio.h>
#define BUF_SIZE 27 /* */
#define MYKEY 6789 /* */
int main(void)
{
int shmid;
char *shmptr;
if((shmid=shmget(MYKEY,BUF_SIZE,IPC_CREAT|0666))<0)
{
printf("shmget error!\n");
exit(1);
}
printf("shmid %d\n",shmid);
if((shmptr=shmat(shmid,NULL,0))<(void *)(0))
{
fprintf(stderr,"shmat error!\n");
exit(1);
}
int count=0;
printf("%u\n",&shmptr);
while(1)
{
printf("%s\n",shmptr);
sleep(3);
}
exit(0);
client.c
/*
* =====================================================================================
*
* Filename: proc2.c
*
* Description:
*
* Version: 1.0
* Created: 2012年03月09日 20时46分12秒
* Revision: none
* Compiler: gcc
*
* Author: MaZheng (blog.csdn.net/mazheng1989), mazheng19891019@gmail.com
* Company: Dalian University Of Technology
*
* =====================================================================================
*/
#include <sys/types.h>
#include <stdlib.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#include <stdio.h>
#define BUF_SIZE 27 /* */
#define MYKEY 6789 /* */
int main(void)
{
int shmid;
char *shmptr;
if((shmid=shmget(MYKEY,BUF_SIZE,0666))<0)
{
printf("shmget error!\n");
exit(1);
}
printf("shmid %d\n",shmid);
if((shmptr=shmat(shmid,NULL,0))==(void *)(-1))
{
fprintf(stderr,"shmat error!\n");
exit(1);
}
printf("%u\n",&shmptr);
while(1)
{
scanf("%s\n",shmptr);
}
printf("%s\n",shmptr);
exit(0);