我们如何检查;“锁定”;linux中进程的共享内存?

我们如何检查;“锁定”;linux中进程的共享内存?,linux,unix,memory,shared-memory,Linux,Unix,Memory,Shared Memory,我试图找到如何检查锁定的共享内存,即使用shmctl(SHM\u LOCK),我发现我们可以通过检查shmid\u ds.shmperm.mode标志在代码中检查它 现在,与使用mlock()一样,我们可以通过检查/proc//status和VmLck值来检查正在使用的内存量 我想知道是否有任何方法可以检查使用shmctl(SHM_LOCK)锁定的进程正在使用多少共享内存 我尝试过使用mlock功能,它确实显示了使用了多少内存,但如果我使用shmctl(SHM\u LOCK),它会显示0kb 只

我试图找到如何检查锁定的共享内存,即使用
shmctl(SHM\u LOCK)
,我发现我们可以通过检查shmid\u ds.shmperm.mode标志在代码中检查它

现在,与使用
mlock()
一样,我们可以通过检查
/proc//status
VmLck
值来检查正在使用的内存量

我想知道是否有任何方法可以检查使用
shmctl(SHM_LOCK)
锁定的进程正在使用多少共享内存

我尝试过使用
mlock
功能,它确实显示了使用了多少内存,但如果我使用
shmctl(SHM\u LOCK)
,它会显示0kb

只是补充一下,我希望在shell中或通过代码看到锁定的内存(没有什么区别)。我只需要一个值

尝试浏览论坛,但找不到任何答案。非常感谢您的帮助。

您应该使用ipcs(1)命令,如下所示:

ipcs | grep locked
ipcs命令在“状态”字段中显示“锁定”状态,如ipcs.c代码所示:

        printf (" %-10ju %-6s %-6s\n",
                  shmdsp->shm_nattch,
                  shmdsp->shm_perm.mode & SHM_DEST ? _("dest") : " ",                    shmdsp->shm_perm.mode & SHM_LOCKED ? _("locked") : " ");