Linux有名信号量的创建(sem_open中name参数构造)
来源:互联网 发布:java string length 编辑:程序博客网 时间:2024/06/04 18:53
一、sem_open函数name参数的构造
Linux的有名信号量的创建是通过调用sem_open函数创建的,函数原型如下:
我刚开始用以为是想一般的指定一个路径名给sem_open中的name参数就可以了,可是我使用“/tmp/sharesem"给name参数确总是返回
no such file or diratory 的错误。我$ man 3 sem_open了下,如上图。发现name参数的构造的详细介绍需要sem_overview(7) 中。(看到这我就可能是像消息队列类似了)
我$ man 7 sem_overview
得到下面的描述
很明显,name参数的构造是以 “ / ” 号开头,后面跟的字符串不能再有 “ / ” 号,长度小于NAME_MAX - 4。
所以说我设置name参数为“/tmp/sharesem"所错误的。
二、Linux有名信号量的存储
有名信号量是随内核持续的,所以如果如果我们不调用sem_unlink来删除它,它将一直存在,直到内核重启。
那有名信号量保存在哪里呢?
实时上,跟消息队列类似,它保存在 /dev/shm 这个目录中。你可以在这个目录中找到你创建了的,但是没有调用sem_unlink的信号量。
由此可见有名信号量的实现是以共享内存区实现的。
0 1
- Linux有名信号量的创建(sem_open中name参数构造)
- 有名信号量sem_open和内存信号量sem_init创建信号量的区别
- linux Qt5.9.1 测试有名信号灯(sem_open)
- sem_open中文件名参数使用说明
- 有名信号量的使用
- linux IPC --- 有名信号量详解
- Linux下的有名管道(03)---使用函数创建和删除有名管道
- linux下posix有名信号量的简单使用示例
- Posix有名信号量、基于内存的信号量
- 信号量(2/2)_有名信号量
- 有名信号量
- Linux——POSIX有名信号量
- <linux进程>POSIX有名信号量基本操作
- linux中有名管道的使用
- 有名管道的创建
- Posix有名信号量的基本操作
- linux中的进程通信-信号量和有名管道
- sem_open()
- 画菱形
- SQL执行顺序 经典 例题
- sp dp px之间的区别
- Launcher实现应用列表透明背景
- iOS基础控件-UITabBarController - 3 之<UITabBarControllerDelegate>协议中的四个重要方法
- Linux有名信号量的创建(sem_open中name参数构造)
- 第十周项目2--解密M$pszi$y
- Java EE HTML5 WebSocket 示例
- C++ 中 string 相加拼接的效率问题
- 设计模式学习(结构型模式)—适配器模式(Adapter)
- mac中用命令行运行mysql
- USB基础知识概论
- w3cschool HTML基础三
- easyui 1.4 datagrid 请求两次的原因