问题标签 [ipcs]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - ipcs的替代品
我有一个使用 System V 共享内存段的应用程序。通常它在内部管理这些,没有人需要触摸它们。但是对于紧急情况,我们有一个实用程序可以手动清除共享内存段。
问题是,要做到这一点,它会运行ipcs
,并使用 cut 抓取输出的大块。这似乎很脆弱。它已经在不同平台上运行略有不同的命令,以反映 ipcs 输出在 Linux / AIX / Solaris 等上的格式不同的事实。
有没有比解析 ipcs 输出更好的方法来查找共享内存段?
unix - IPCS 消息传递相关查询
我正在处理消息传递 IPCS 方法。我对此确实有几个问题:
- 中的 KEY 字段
ipcs -q
告诉我0x00000000
这是什么意思? - 我可以使用 msqid 查看传递的消息吗?
- 如果在执行 command 后存在两个条目(对于特定用户)
ipcs -q
。这是否意味着此特定用户传递了两条消息? - 如果 used-bytes 和 message 字段设置为 0,这意味着什么?
- 是否可以查看消息队列是否已满?
- 对于一个特定的用户,我们可以有多少个队列?
我尝试了凝视,但无法找到这些问题的答案。请帮忙
c - mq_open 给出“打开的文件太多”
我使用以下代码创建了一个消息队列。前几次它工作正常。
之后,它给出了以下错误
但是为什么我会收到这个错误?如何查看ipcs
系统 V 的 possix 消息队列?
c - C Unix信号量:进程应该等待0,但不会
编写了两个简单的函数,一个用于将信号量设置为任意值(重置),另一个用于使调用它的进程等待信号量为零:
将这些函数用作代码的过程如下所示:
发生的情况是,上述过程只是继续执行循环,而我希望它在最后停止,当它调用函数 Z 时,等待信号量变为 0,然后将其重置为其初始内容并重新启动。
我哪里错了?谢谢 [已解决:愚蠢的错字 sem_id 而不是 semid]
linux - linux、阿帕奇和ipcs
昨晚我的 apache 服务器因错误而崩溃:
在谷歌搜索错误的位置后,我发现这与 apache 信号量管理有关。我已经杀死了任何 apache 挂起的信号量,现在可以了:
现在...我看到在 apache 启动信号量已恢复(apache 已启动并正在运行)但一些其他信号量已由某些 php 进程创建(我认为)并具有奇怪的特权:
但是当我尝试了解有关某个信号量 ID 的更多信息时,我收到了这个错误
问题是:我如何知道哪个进程正在创建信号量而不删除它们?我可以在不影响系统可靠性的情况下杀死所有 perms = 0 的信号量吗?
谢谢大家,斯特凡诺
c - 信号量 unix c 等待零
我试图了解如何在 unix 中执行等待零操作。我有这段代码,但它总是以与给定相同的值停止等待。
php - 当我在 KEY 中创建共享内存 (shmop_open) 时,INT 限制是多少?(PHP)
当我创建一个共享内存段时,我使用一个整数作为共享内存键。现在,我需要知道这个键的 int 数的限制。
我知道 int32 的限制是 2147483647 而 int64 的限制是 9223372036854775807
如果我创建一个编号为 9223372036854775807 和 9223372036854775800 的共享内存,则关键引用是 0xffffffff 和 0xfffffff8。
我认为ipcs -m
响应并没有显示所有的十六进制数字。限制是多少,我如何确认它ipcs -m
可以正常工作?
php - 在 Linux 中使用 iprm 删除共享内存失败
我正在使用共享内存,并且正在测试内存引用溢出。我的代码中有一些问题,我无法删除我正在尝试的所有内存段:
内存段从不删除
linux - 为什么 ipcs 命令显示许多未分离的共享内存,密钥为 0x0000000?
我发现许多带有密钥 0x0000000 的未分离共享内存,ipcs
如下所示:
这很奇怪,因为nattach
参数的值都是 0,这意味着没有进程附加到它们,在这种情况下应该删除它们。
我错过了什么?我不知道是哪个过程导致了这种情况。有什么办法可以查到吗?
c - 使用 shmclt() 跨进程释放内存返回无效参数错误
我在我的编程中创建了几个子进程,所以我决定创建一个共享内存数组,如下所示:
在我操作了一些工作之后,我成功分离了共享数组,但是我在删除父函数中的内存时遇到了麻烦: