共享存储区的创建 ,附接,和断接。
#include<sys/types.h>
#include<sys/msg.h>
#include<sys/ipc.h>
#define SHMKEY 75
int shmid , i ;
int * addr;
void CLIENT()
{
int i;
shmid = shmget(SHMKEY, 1024,0777|IPC_CREAT);
addr = shmat(shmid,0,0);
for(i = 9 ; i>= 0 ; i --)
{
while(* addr != -1);
printf("(client)sent/n");
* addr = i;
}
exit(0);
}
void SERVER()
{
shmid = shmget(SHMKEY,1024,0777|IPC_CREAT);
addr = shmat(shmid,0,0);
do
{
* addr = -1;
while(* addr == -1);
printf("(server)received/n");
}while(* addr);
shmctl(shmid,IPC_RMID,0);
exit(0);
}
int main()
{
while((i= fork())==-1);
if(!i) SERVER();
while((i= fork())==-1);
if(!i) CLIENT();
wait(0);
wait(0);
}
changtiger的电邮 o52tiger@yahoo.com.cn