sem_open出现段错误 名字问题

posix信号灯里面的这个函数sem_open();这里面的第一个参数一般情况下第一个字符为'/'  而且后面的的字符串里面不能在中间出现反斜杠,因为这种有名信号灯的实现机制是依靠文件的方式来实现的.而反斜杠后面的为这个自定义文件的名字(也算是信号量的名字) 而命名机制是不允许出现反斜杠的.  (但是可以是这样,开头处连续出现多个反斜杠比如'/semfxp',这是因为sem_open这个函数会检查第一个字符如果第一个字符为反斜杠则继续检查知道不出现反斜杠位置后面的即为名字,而如果第一个不为反斜杠,则它将默认为是信号量的名字了就直接创建这个文件了,也就不会出现问题,但是害怕的是有的人会有这种写法,'zhang/fxp', 假如说你写一个这样的名字,那麽系统会这样做,它会去在目录/dev/shm/下去找sem.zhang这个目录,结果会发现失败(之所以是sem.zhang是因为在sem_open这个源函数里面一般都添加一个sem.头部.) 当然了 你也可以在程序里面首先mkdir一个这样的文件夹比如sem.zhang   (在/dev/shm/下) 这样的话程序就不会出现问题了.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值