gpt4 book ai didi

c - 如何在 linux C 的用户空间程序中找到 sigset_t 的补码

转载 作者:太空宇宙 更新时间:2023-11-04 10:45:30 25 4
gpt4 key购买 nike

我想补充我程序中的信号集。只提供了一些位操作API,如sigorset() sigandset()

是否有任何 API 可以找到一个信号集的补充?

最佳答案

您可能指的是 sigsetops ,它为信号提供了一些集合操作。仅提供了几个操作,因为每个操作都旨在用作更复杂操作的构建 block 。

POSIX 指定用于将信号集初始化为“已填充”或“空”的扩展,即

此外,glibc 添加了它自己的逻辑 ANDing 和 ORing 集扩展。 (像往常一样,有一个关于便携性的警告)。

但也许忽略了这些 POSIX 扩展:

要获得给定源操作数的补码,使用这些函数您必须执行如下操作:

  • 使用sigfillset 初始化目标操作数。将其视为将值设置为全 1。
  • 迭代源操作数中的信号值范围,使用 sigismember 测试给定信号是否存在于该信号集中。
  • 对于源中存在的每个信号,使用sigdelset 将其从目标中移除。将其视为将该位设置为零。

简而言之,补码没有预定义的操作,但是您可以从现有的 POSIX 扩展函数中制作您需要的。

关于c - 如何在 linux C 的用户空间程序中找到 sigset_t 的补码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33290395/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com