社区
Linux/Unix社区
帖子详情
关于共享内存的的问题~
bm1408
2006-05-11 09:22:14
最近在弄一个程序,要使用共享内存,要求很简单,就是父进程写进信息,子进程读出来
大家给一个例子吧
比如说:
struct student
{
int id;
char name[`11];
}STU[MAX];
父进程把这个结构体信息放入共享内存中,然后子进程读出并修改,
大家给个例子~~~
...全文
182
1
打赏
收藏
关于共享内存的的问题~
最近在弄一个程序,要使用共享内存,要求很简单,就是父进程写进信息,子进程读出来 大家给一个例子吧 比如说: struct student { int id; char name[`11]; }STU[MAX]; 父进程把这个结构体信息放入共享内存中,然后子进程读出并修改, 大家给个例子~~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
字与码
2006-05-11
打赏
举报
回复
#include <stdlib.h>
#include <sys/shm.h>
#define ARRAY_SIZE 40000
#define MALLOC_SIZE 100000
#define SHM_SIZE 100000
#define SHM_MODE 0600 /* user read/write */
char array[ARRAY_SIZE]; /* uninitialized data = bss */
int
main(void)
{
int shmid;
char *ptr, *shmptr;
printf("array[] from %lx to %lx\n", (unsigned long)&array[0],
(unsigned long)&array[ARRAY_SIZE]);
printf("stack around %lx\n", (unsigned long)&shmid);
if ((ptr = malloc(MALLOC_SIZE)) == NULL)
printf("malloc error\n");
printf("malloced from %lx to %lx\n", (unsigned long)ptr,
(unsigned long)ptr+MALLOC_SIZE);
if ((shmid = shmget(IPC_PRIVATE, SHM_SIZE, SHM_MODE)) < 0)
printf("shmget error\n");
if ((shmptr = shmat(shmid, 0, 0)) == (void *)-1)
printf("shmat error\n");
printf("shared memory attached from %lx to %lx\n",
(unsigned long)shmptr, (unsigned long)shmptr+SHM_SIZE);
if (shmctl(shmid, IPC_RMID, 0) < 0)
printf("shmctl error\n");
exit(0);
}
menu.ini在cygwin下~不能更新
问题
问题
:menu.ini修改后在cygwin下按~不能执行。menu.ini生成sysconf.img2,如果修改menu.ini后,主选单~后,照程序就会生成一个sysconf.img2.tmp文件。在linux环境打开的文件,也可以直接mv a b;而windows就不行,所以cygwin下~不能更新。原因:因为windows的文件系统和unix的不一样。windows是不允许删除或者改名正打开
深入解析Docker容器
共享内存
优化:从基础配置到实战调优
本文深入解析了Docker容器中
共享内存
(shm)的优化策略,针对深度学习训练中常见的“Bus error”
问题
,从基础诊断、启动配置(--shm-size)、运行时动态调整到PyTorch DataLoader实战调优,提供了完整的解决方案与避坑指南,帮助用户确保容器化AI任务高效稳定运行。
Linux进程间的通信~
共享内存
共享内存
(一)什么是
共享内存
顾名思义,
共享内存
就是两个不相关的进程之间利用同一块内存进行数据传输。但是由于
共享内存
并没有提供同步机制,所以再利用
共享内存
时需要其他的机制来同步对该内存的访问。常用的是信号量。 (二)
共享内存
的实现 #include <sys/shm.h> int shmget(key_t key, size_t size, int shmflg); void shm...
【Linux】「
共享内存
揭秘」:高效进程通信的终极指南
本文深入剖析了
共享内存
的实现机制、关键API的使用以及实际应用中的注意事项,并对比了其与其他IPC方式的优劣。在理解其高性能的同时,也要认识到同步与安全的挑战
【Linux】进程间通信之
共享内存
共享内存
区是最快的IPC形式。一旦这样的内存映射到共享它的进程的地址空间,这些进程间数据传递不再涉及到内核,换句话说是进程不再通过执行进入内核的系统调用来传递彼此的数据.使用ipcrm -m 命令删除指定
共享内存
后,是不会直接释放
共享内存
的,因为
共享内存
的生命周期是随操作系统的,只有
共享内存
当前的映射链接数为0才会被删除释放。使用ipcrm -a 可以删除所有进程间通信资源(a代表all也就是全部的意思)ipcrm -m删除
共享内存
,-q删除消息队列,-s删除信号量。
Linux/Unix社区
23,223
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章