内存共享基本演示
2013-07-31 16:13
141 查看
发送端: 申请共享内存区域并写入数据到共享内存区域
sender.c
gcc -o send sender.c
接收端:
读取共享区的内容
sender.c
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/shm.h> #define BUFSIZ 102400 int main() { int shmid=-1; char * viraddr; char buffer[BUFSIZ]; key_t shmkey =ftok("/home/cip/test/", 0); shmid = shmget(shmkey,BUFSIZ, IPC_CREAT|0666); //申请共享区域 viraddr=(char*)shmat(shmid,0,0); //附件共享地址到将本进程 while(1) { puts("enter some text:"); fgets(buffer, BUFSIZ, stdin); strcat(viraddr,buffer);添加数据到共享内存中 if(strncmp(buffer,"end",3)==0) { break; } } shmdt(viraddr); //撤销地址映射 return 0; }
gcc -o send sender.c
接收端:
读取共享区的内容
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <sys/types.h> #include <sys/shm.h> #define BUFSIZ 102400 int main() { int shmid=-1; char * viraddr; char buffer[BUFSIZ]; key_t shmkey = ftok("/home/cip/test/", 0); shmid = shmget(shmkey,BUFSIZ, IPC_CREAT|0666); //获取共享区域 viraddr=(char*)shmat(shmid,0,0); printf("Your message is:\n%s", viraddr); shmdt(viraddr); shmctl(shmid, IPC_RMID,0); return 0; }
相关文章推荐
- 内存共享基本演示
- IPC——共享内存与信号灯的基本函数整理
- 进程间通信系列(12)共享内存的基本概念
- 共享内存使用的基本思路和接口
- IPC--共享内存(1)--基本知识
- Linux编程实践----共享内存的演示(IPC)
- 共享内存使用的基本思路和接口
- C语言共享内存-基本操作
- Memstat -- 查看共享库的内存占用
- linux进程通讯-共享内存
- 大内高手—共享内存与线程局部存储
- Linux进程间通信之共享内存
- nginx共享内存:共享内存的实现
- 进程间通信之系统V共享内存
- linux--共享内存
- IPC--共享内存
- 共享内存
- Linux环境进程间通信(五): 共享内存(上)
- [转]天龙八部服务器端-共享内存的设计