IPC 程序例子二
来源:互联网 发布:手机淘宝如何注销账户 编辑:程序博客网 时间:2024/04/18 20:33
共享内存
#include <sys/ipc.h>
#include <sys/shm.h>
通过程序建立了一个共享内存
# ipcs -m 建立并且存放了数据
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x74006dfa 2293760 root 600 4 0
0x00000000 2654209 root 644 80 2
0x74006df9 2260994 root 600 4 0
0x00000000 2686979 root 644 16384 2
0x00000000 2719748 root 644 280 2
0x000003e8 2949125 root 666 512 0
# ipcs -m 读取清除之后
------ Shared Memory Segments --------
key shmid owner perms bytes nattch status
0x74006dfa 2293760 root 600 4 0
0x00000000 2654209 root 644 80 2
0x74006df9 2260994 root 600 4 0
0x00000000 2686979 root 644 16384 2
0x00000000 2719748 root 644 280 2
程序举例:
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/errno.h>
#include <sys/ipc.h>
#include <sys/shm.h>
#define SHM_KEY 1000L
#define SHM_SIZ 512
#define BUF_SIZ 50
int main() {
pid_t pid;
int shmid;
if ((shmid = shmget(SHM_KEY, SHM_SIZ, IPC_CREAT | 0666)) < 0) {
perror("shmget error");
exit(0);
}
printf("shared memory id = %d\n", shmid);
if ((pid = fork() < 0)) {
perror("fork error");
}
if (pid == 0) {
char *address = shmat(shmid, NULL, 0);
if (address == NULL) {
perror("attatch error");
}
strcpy(address, "this is a shared momery test!");
shmdt(address);
sleep(1);
}
char *address = shmat(shmid, NULL, 0);
if (address == NULL) {
perror("attatch error");
}
printf("read data :%s\n", address);
shmdt(address);
shmctl(shmid, IPC_RMID, NULL);
return 0;
}
运行结果:
shared memory id = 2949125
read data :this is a shared momery test!
运行 FINISHED; Segmentation fault; 实时: 1s; 用户: 0ms; 系统: 0ms
- IPC 程序例子二
- IPC程序例子 一
- OpenCv 中Snake程序的例子(二)
- 读书笔记--IPC机制(二)
- IPC 机制(二)
- IPC机制(二)
- Android中的IPC(二)
- Android-IPC之二
- IPC机制<二>AIDL
- IPC机制(二)
- IPC主题二:信号量
- 二、IPC机制(IPC介绍)
- 二、IPC机制续(IPC方式)
- 二、IPC机制续(IPC方式)
- IPC(二)---IPC基础概念介绍
- Protocol Buffer 二 简单例子之C++程序
- TDD in ABAP开发(二:程序例子)
- PyQt5笔记—例子(二) 设置程序图标
- 顺序线性表
- 导出查询中的数据到Excel,包含字段名,文件为真正的Excel文件
- inotify -- Linux 2.6 内核中的文件系统变化通知机制
- 附近地点搜索初探
- oracle 11g常用命令
- IPC 程序例子二
- rhel 6.3 建立centos yum
- Ubuntu 11.04 下安装极点五笔的方法
- 反映现实生活情感的一种艺术就是音乐
- 乐又是一种听觉艺术
- Cximage 切图部分代码mark
- Android framwork cpp调用java function
- mysql cluster 节点增加和减少
- 仿百度文库文档上传页面的多级联动分类选择器