首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除旧信号量systemV

删除旧信号量systemV
EN

Stack Overflow用户
提问于 2020-01-03 20:48:35
回答 1查看 86关注 0票数 1

本质上,我希望当我的程序开始执行类似于

代码语言:javascript
复制
set IPCS_S = ipcs -s | egrep "0x[0-9a-f]+ [0-9]+" | grep $USERNAME | cut -f2 -d" "

for id in $IPCS_S; do
  ipcrm -s $id;
done

我想要这样做,以确保我不会打开一个剩余的信号量(信号量是在异常终止后被打开的)。

有什么方法可以用本机C++代码做到这一点吗?还是我最好的选择是调用外部shell脚本?

EN

回答 1

Stack Overflow用户

发布于 2022-01-07 14:53:04

尝试如下:将此文件保存为" removeipc.sh“,然后保存为"chmod 777 removeipc.sh”,

代码语言:javascript
复制
#!/bin/bash

ME=`whoami`

IPCS_S=`ipcs -s | egrep "0x[0-9a-f]+ [0-9]+" | grep $ME | cut -f2 -d" "`
IPCS_M=`ipcs -m | egrep "0x[0-9a-f]+ [0-9]+" | grep $ME | cut -f2 -d" "`
IPCS_Q=`ipcs -q | egrep "0x[0-9a-f]+ [0-9]+" | grep $ME | cut -f2 -d" "`


for id in $IPCS_M; do   echo $id   ipcrm -m $id; done

for id in $IPCS_S; do   echo $id   ipcrm -s $id; done

for id in $IPCS_Q; do   echo $id   ipcrm -q $id; done
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59585154

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档