我正在应用程序中使用系统 V 共享内存。在开发过程中,我需要检查并有时删除内存段。我知道有ipcs
检查共享内存的命令,也有ipcrm
删除的命令。我唯一的问题是,我首先需要shmid
使用查找共享内存段的ipcs -m
,找到正确的,然后使用删除它ipcrm -m <shmih>
。在我的应用程序中,我使用ftok()
文件和标识符来识别共享内存段,这要容易得多(可以使用ipcrm -M
其密钥而不是 shmid 来删除共享内存段)。是否有ftok
shell 命令?默认情况下,我的 ubuntu 服务器没有,检查 man 文件时我也没有找到任何提示。
创建与 ftok 相同 ID 的 shell 脚本或二进制文件也可以……出于兼容性原因,我只是不想使用 /bin/sh 或 /bin/bash 以外的任何其他解释器。而且我对 C 不太了解,所以很遗憾我不能自己写。