仅管/dev/shm只有64M,但创建65M的POSIX SM也可以成功。
可以看到:因为内核在mount tmpfs时,指定了MS_NOUSER,所以该tmpfs没有大年夜小限制,是以,SYS V共享内存可以或许应用的内存空间只受/proc/sys/kernel/shmmax限制;而用户经由过程挂载的/dev/shm,默认为物理内存的1/2。
(4)向POSIX SM写数据
/dev/shm的mount与通俗文件mount的流程类似,不再评论辩论。然则,值得留意的是,/dev/shm默认的大年夜小为当前物理内存的1/2:
点击(此处)折叠或打开
- /*gcc -o shmwrite shmwrite.c -lrt*/#include <unistd.h>
- #include <fcntl.h>
- #include <sys/stat.h>
- #include <sys/types.h>
- #include <sys/mman.h>
- #include <stdio.h>
- #include <stdlib.h>
- #define MAP_SIZE 68157440
- int main(int argc, char *argv[])
- {
- int fd;
- void* result;
- fd = shm_open("/shm1", O_RDWR|O_CREAT, 0644);
- if(fd < 0){
- printf("shm_open failed\n");
- exit(1);
- }
- if (ftruncate(fd, MAP_SIZE) < 0){
- printf("ftruncate failed\n");
- exit(1);
- }
推荐阅读
Win7体系U盘插入后假逝世怎么处理?有效户表示,在Win7体系下,U盘插入后体系会出现假逝世的问题,一般十几秒钟就恢复正常了,固然对操作体系毫无影响,我们却不想存在任何假设的病毒存在,>>>详细阅读
地址:http://www.17bianji.com/lsqh/36688.html
1/2 1