Linux sem_init函数用法
sem_init函数是Posix信号量操作中的函数。
int sem_init(sem_t *sem,int pshared,unsigned int value);
sem_init() 初始化一个定位在 sem 的匿名信号量。value 参数指定信号量的初始值。 pshared 参数指明信号量是由进程内线程共享,还是由进程之间共享。
如果 pshared 的值为 0,那么信号量将被进程内的线程共享,并且应该放置在这个进程的所有线程都可见的地址上(如全局变量,或者堆上动态分配的变量)。
如果 pshared 是非零值,那么信号量将在进程之间共享,并且应该定位共享内存区域(见 shm_open(3)、mmap(2) 和 shmget(2))。因为通过 fork(2) 创建的孩子继承其父亲的内存映射,因此它也可以见到这个信号量。所有可以访问共享内存区域的进程都可以用 sem_post(3)、sem_wait(3) 等等操作信号量。初始化一个已经初始的信号量其结果未定义。
返回值:sem_init() 成功时返回 0;错误时,返回 -1,并把 errno 设置为合适的值。
一个例子:
比如有两个线程都要往打印机上打东西,但是同一时刻只能打一个。那么首先用sem_init初始化一个信号量,注意pshared表示允许几个进程共享该信号量,一般设0用于进程内的多线程共享,要看是否支持进程共享,请查看下你的系统的man手册。
Linux sem_init函数用法相关推荐
- sem_init函数用法
sem_init函数 sem_init函数是Posix信号量操作中的函数.sem_init() 初始化一个定位在 sem 的匿名信号量.value 参数指定信号量的初始值. pshared 参数指明信 ...
- linux signal函数用法,linux信号机制之sigaction构造体浅析,signal 函数,信号捕捉.
来自:http://hi.baidu.com/phenix_yw/blog/item/6eb4ca391d1479f23a87ce19.html 信号安装函数sigaction(int signum, ...
- linux getline函数用法,Linux文本处理三剑客之awk学习笔记05:getline用法详解
getline用法详解 在默认情况下,awk支持从文件或者STDIN中读取数据.我们也可以使用getline来灵活读取数据,例如在main代码块执行过程中读取某个非待处理文件的数据,或者从某个读取某个 ...
- linux fseek函数用法详解
1.功 能 重定位流( 数据流/文件)上的 文件内部位置 指针 注意:不是 定位文件指针,文件指针指向文件/流.位置 指针指向文件内部的字节位置,随着文件的读取会移动, 文件指针如果不重新赋值将不会改 ...
- linux getline函数用法,get()与getline()
以下内容来自:http://yanger2004.ycool.com/post.2831191.html 相同点: 要获取一行的输入,标准流类的成员函数getline(),get()都有三个参数,比如 ...
- linux select函数用法
select系统调用是用来让我们的程序监视多个文件句柄的状态变化的.程序会停在select这里等待,直到被监视的文件句柄有一个或多个发生了状态改变.关于文件句柄,其实就是一个整数,我们最熟悉的句柄是0 ...
- linux闹钟函数用法(alarm)
alarm(闹钟函数),当定时器指定的时间到时,它向进程发送SIGALRM信号.可以设置忽略或者不捕获此信号,如果采用默认方式其动作是终止调用该alarm函数的进程. 在调用前需要写处理函数myAla ...
- Linux access()函数 使用 http://blog.163.com/lqy_super/blog/static/199751021201302351831330/
Linux access()函数 使用 2013-01-23 17:18:31| 分类: Linux相关|举报|字号 订阅 下载LOFTER客户端 Linux access函数功能描述: 检查调用进 ...
- c语言strTrimed函数用法介绍,linux type命令用法_转
在脚本中type可用于检查命令或函数是否存在,存在返回0,表示成功:不存在返回正值,表示不成功. $ type foo >/dev/null 2>&1 || { echo > ...
最新文章
- 技术项目 - Linux Swap
- Git学习笔记——分支
- java代码删除文件夹_删除文件夹的java类
- Mysql数据目录初识
- C#判断一个类中有无指定名称的方法
- iis php日志查看工具,教你如何查看IIS日志
- python中有readall吗_在python中使用tn.read_all()读取数据
- Android中getDimension,getDimensionPixelOffset和getDimensionPixelSize 区别
- 格雷码转换成二进制c语言程序,基于PLC程序实现格雷码转换成二进制码.pdf
- 云网资源如何搭乘「数字孪生」的快车道?
- python基础之排列组合以及正则表达式
- iPhone13外部拨打电话总是暂时无法接通解决方案
- C盘空间大释放——Downloaded Installations
- 教你这么理解 『假脱机打印机系统』
- Delphi CreateMutex 防止程序多次运行
- 笔记本固态盘数据丢失怎么办?笔记本固态盘怎么恢复数据
- 实时守护重要物件,异常情况及时推送,VOC智能保管箱G300上手
- 【操作系统实验】各种幺蛾子
- 《勋伯格和声学》读书笔记(十三):在调性的边缘(对减七和弦和增七和弦及其转位和弦的进一步观察)
- PHP简易开发的问卷调查系统
热门文章
- LUA 利用#遍历表的问题
- windows配置java运行环境
- 数据蒋堂 | 怎样看待存储过程的移植困难
- BZOJ4855 : [Jsoi2016]轻重路径
- 腾讯云数据库团队:MySQL5.7 JSON实现简介
- 巧用组策略技术禁用办公室QQ聊天
- 使用DLL封装窗体和业务类
- Application Architecture Guide 2.0 (Chapter 7: Quality Attributes) Part 3
- windows2003的一些设置之一
- varchar,nvarchar不同呀。小心出错