linux多线程 & IPC【】system V匿名内存共享
来源:互联网 发布:淘宝刷钻最新方法 编辑:程序博客网 时间:2024/05/29 16:31
在shmget函数中使用 IPC_PRIVATE的场合,发生在具有亲缘关系的进程间通信的场合。
#include <unistd.h>#include <fcntl.h>#include <stdio.h>#include <stdlib.h>#include <errno.h>#include <sys/mman.h>#include <semaphore.h>#include <sys/shm.h>struct st{ sem_t mutex; int value;};int main(){ int id; pid_t pt; id = shmget(IPC_PRIVATE, sizeof(struct st), IPC_CREAT|0666); if(id==-1) { printf("shmget fail\n"); return 1; } printf("shmid: %d\n", id); //映射 struct st*p; p = shmat(id, NULL, 0); //初始化 sem_init(&(p->mutex),1,1); p->value=0; // fork pt = fork(); if(pt<0) { shmdt(p); shmctl(id, IPC_RMID, NULL); return 3; } else if(pt==0) //子进程 { while(1) { printf("child! "); sem_wait( &(p->mutex)); if(p->value<100) { p->value++; printf("plus: %d by %d\n", p->value, getpid()); }else { // shmctl(id, IPC_RMID, NULL); sem_post( &(p->mutex)); // shmdt(p); break; } sem_post( &(p->mutex)); } }else { while(1) { printf("father! "); sem_wait( &(p->mutex)); if(p->value<100) { p->value+=2; printf("plus 2: %d by %d\n", p->value, getpid()); }else { // p->value-=2; // printf("minus 2: %d by %d\n", p->value, getpid()); sem_post( &(p->mutex)); break; } sem_post( &(p->mutex)); } }// shmdt(p); shmctl(id, IPC_RMID, NULL); }
- linux多线程 & IPC【】system V匿名内存共享
- linux多线程 & IPC【12】System V 共享内存
- Linux ipc------System V共享内存
- Linux IPC实践 --System V共享内存
- Linux IPC之System V共享内存
- 共享内存(system V IPC)
- System V IPC共享内存
- linux system V IPC 信号灯和共享内存实例
- [linux系统编程]System V IPC 共享内存
- 细说linux IPC(五):system V共享内存
- 细说linux IPC(五):system V共享内存
- Linux IPC实践(9) --System V共享内存
- Linux IPC实践(9) --System V共享内存
- linux IPC 通信 study 五:system v 共享内存
- Linux IPC实践(9) --System V共享内存
- Linux C编程--进程间通信(IPC)5--System V IPC 机制3--共享内存
- Linux C编程--进程间通信(IPC)5--System V IPC 机制3--共享内存
- linux 共享内存--System V共享内存
- cmd命令操作
- Android的Touch事件处理机制
- php根据字符串类名 动态生成对象
- ASP.NET Cache的一些总结
- CNR Client-class的工作原理
- linux多线程 & IPC【】system V匿名内存共享
- 保护模式和实模式对比
- java判断指定路径文件是否存在
- MC新手入门(十二)------ 色彩色调
- #小练习 异常
- centos下编译2.6.32
- UIImagePickerController拍照与摄像
- Oracle 学习笔记4 —— 使用profile管理系统资源
- 教育男孩子必备四大原则