美文网首页
共享内存

共享内存

作者: 8dc010427b39 | 来源:发表于2017-02-09 20:24 被阅读0次

    创建共享内存区
    int shmget(key_t key , size_t size , int shm-flg);

    参数:

    flags--------IPC_CREAT | 0666   建立加读写权限

    ipcs -m 可以显示已经成功创建一块共享内存,nattch字段显示已经附加到这个内存区的进程数


    附加到共享内存区

    void *shmat(int shmid,const void *shmaddr,int shmflg)

    char buf[1024];

    char *mem=shmat(shid,0,0);//第一个参数是共享内存的id  一般第二个参数和第三个参数会填0,第二个参数填buf表示共享内存会与buf绑定,返回共享内存地址给mem


    多个程序读写共享内存

    进程1:

    char *buf = shmat(shid, NULL, 0);

    strcpy(buf,"hello\n");

    进程2:

    char *buf = shmat(shid, NULL, 0);

    printf("%s\n",buf);


    分离共享内存

    int shmdt(const void *shmaddr)

    shmdt(buf);


    共享内存查看命令

    查看共享内存  ipcs

    杀死共享内存  ipcsrm  共享内存ID

    相关文章

      网友评论

          本文标题:共享内存

          本文链接:https://www.haomeiwen.com/subject/xaewittx.html