yyyyyyyyyyyyyyyyyyyy

博客园 首页 新随笔 联系 订阅 管理
//进程通信,共享存储区
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <errno.h>
#include <malloc.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/ioctl.h>
#include <stdarg.h>
#include <fcntl.h>
#include <fcntl.h>



#include<sys/types.h>
#include<sys/shm.h>
#include<sys/ipc.h>

#define SHMKEY 75
int shmid,i;
int *addr;

void client()
{
    int i;
    shmid=shmget(SHMKEY,1024,0777);
    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);
}

main()
{
    while((i=fork())==-1);
    if(!i)server();
    system("ipcs -m");
    while((i=fork())==-1);
    if(!i)client();
    wait(0);
    wait(0);
}

 

posted on 2014-11-12 03:04  xxxxxxxx1x2xxxxxxx  阅读(307)  评论(0编辑  收藏  举报