Linux 中 POSIX 可靠信号和 POSIX 实时信号有什么区别?

2024-04-20

我读了一个手册页signal using 男人7信号 http://man7.org/linux/man-pages/man7/signal.7.html我看到两种类型的信号。所以,我有一个问题,

有什么区别POSIX 可靠信号 and POSIX 实时信号在 Linux 中?


如今,最好将这些表述为ordinary信号语义与realtime信号语义。

在一些早期的 UNIX 系统中,信号是不可靠的,因为它们可能会“丢失”,因为没有工具可以阻止信号(使它们保持挂起状态)。例如,即将调用的代码pause()检查后wake_up_flag如果信号在检查之后但在执行之前到达,则由信号处理程序设置的信号可能会错过唤醒指令。pause()。信号阻断和sigpause() http://man7.org/linux/man-pages/man3/sigpause.3.html是对这种情况的可靠改进。

此外,语义signal()意味着用户定义的信号处理程序在进入处理程序时被重置为 SIG_DFL。那么,通常的技术是立即在信号处理程序内重新安装用户定义的配置。然而,由于信号无法被阻止,这意味着存在竞争条件,程序可以再次发出信号并遭受 SIG_DFL 的后果。在现代系统中,sigaction() http://man7.org/linux/man-pages/man2/sigaction.2.html可靠地解决这种情况。

因此,“可靠”信号就是当今我们大多数人所认为的普通信号语义。 (有关更多信息,我建议UNIX 环境中的高级编程作者:Stephens 和 Rago,特别是第 § 10.4“不可靠信号”)

POSIX 实时信号 http://pubs.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_04.html#tag_02_04_02在普通信号的基础上添加一些功能,例如,用于应用目的的新信号范围 (SIGRTMIN ... SIGRTMAX)、对待处理信号进行排队的能力以及使用信号传递数据字的能力。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 中 POSIX 可靠信号和 POSIX 实时信号有什么区别? 的相关文章

  • 如何使用 go1.6.2 构建 linux 32 位

    有没有任何组合GOARCH and GOOS我可以设置哪些值来构建 ELF 32 位二进制文 件 GOOS linux and GOARCH 386 更多示例 架构 32 bit gt GOARCH 386 64 bit gt GOARCH
  • 用于获取特定用户 ID 和进程数的 Bash 脚本

    我需要 bash 脚本来计算特定用户或所有用户的进程 我们可以输入 0 1 或更多参数 例如 myScript sh root deamon 应该像这样执行 root 92 deamon 8 2 users has total proces
  • aarch64 Linux 硬浮点或软浮点

    linux系统有arm64 有arm架构armv8 a 如何知道 Debian 运行的是硬浮动还是软浮动 符合 AAPCS64 GNU GCC for armv8仅提供硬浮动aarch64工具链 这与 armv7 a 的 GCC 不同 后者
  • 如何指定配置脚本的包含目录

    我的工作场所有一个 Linux 系统 其中包含相当旧的软件包 并且没有 root 访问权限 我正在从源代码编译我需要的包 prefix somewhere in homedir 我的问题是我只是不知道如何说服配置在特定目录中查找头文件 源码
  • 隐式声明“gets”

    据我所知 隐式声明 通常意味着该函数必须在调用之前放置在程序的顶部 或者我需要声明原型 然而 gets应该在stdio h文件 我已包含 有没有什么办法解决这一问题 include
  • PHP:我是否将事件驱动编程与信号感知接口(信号和槽/观察者模式)混淆了?

    我看到很多人说 Symfony2 Zend Framework 2 等都是事件驱动的 在桌面世界中 通过事件驱动编程 我了解到应用程序每当其状态发生变化时都会通知其观察者 由于 PHP 应用程序是无状态的 因此无法执行此类操作 IE 让观察
  • Linux >2.6.33:可以使用 sendfile() 来实现更快的“猫”吗?

    必须将大量大文件连接成一个更大的单个文件 我们目前使用 cat file1 file2 output file but are wondering whether it could be done faster than with that
  • 如何使用 nohup 获取正在运行的程序列表

    我正在通过 SSH 连接访问运行 CentOS linux 发行版 的服务器 由于我无法始终保持登录状态 因此我使用 nohup command 来运行我的程序 我找不到如何获取我开始使用 nohup 的所有程序的列表 工作 只有在我注销之
  • 如何在 Linux 中向热敏打印机发送 ESC/POS 命令

    我正在尝试在热敏打印机上发送 ESC POS 命令 但每当我发送它们时 热敏打印机都会将它们打印为文本 而不是作为命令执行它们 我在 prn 文件中编写这些命令 每当我执行 lp 命令来打印文件时 这些 prn 文件也会被打印 但作为文本
  • 有没有办法提高linux管道的性能?

    我正在尝试使用 64 位将超高速数据从一个应用程序传输到另一个应用程序CentOS http en wikipedia org wiki CentOS6 我使用以下方法进行了基准测试dd发现阻碍我的是管道而不是程序中的算法 我的目标是达到
  • 通过名称获取进程ID

    我想在 Linux 下获得一个给定其名称的进程 ID 有没有一种简单的方法可以做到这一点 我还没有在 C 上找到任何可以轻松使用的东西 如果追求 易于使用 char buf 512 FILE cmd pipe popen pidof s p
  • GCC 详细模式输出解释

    我是 Linux 新手 谁能向我解释一下我的 hello world 程序的以下详细模式输出 另外 这些文件是做什么用的crt1 o crti o crtend o crtbegin o and crtn o and lc and lgcc
  • Linux 中的 Windows NAmed Pipes 替代品

    我们正在将现有的 Windows 代码移植到 Linux 我们使用 ACE 作为抽象层 我们使用 Windows 命名管道与多个客户端进行通信并执行重叠操作 linux 下这个相当于什么 我检查了linux命名管道 FIFO 但它们似乎只支
  • 每个虚拟主机的错误日志?

    在一台运行 Apache 和 PHP 5 的 Linux 服务器上 我们有多个带有单独日志文件的虚拟主机 我们似乎无法分离 phperror log虚拟主机之间 覆盖此设置
  • 重新链接匿名(未链接但打开)文件

    在 Unix 中 可以创建匿名文件的句柄 例如 使用 creat 创建并打开它 然后使用 unlink 删除目录链接 留下一个带有 inode 和存储的文件 但没有可能的方法重新打开它 此类文件通常用作临时文件 通常这就是 tmpfile
  • 删除 Python 中某些操作的 root 权限

    在我的 Python 脚本中 我执行了一些需要 root 权限的操作 我还创建并写入文件 我不想由 root 独占所有 而是由运行我的脚本的用户独占所有 通常 我使用以下命令运行脚本sudo 有办法做到上述吗 您可以使用以下方式在 uid
  • Boost:如何从 Epoch 打印/转换 posix_time::ptime(以毫秒为单位)?

    我在转换时遇到问题posix time ptime到由 表示的时间戳time t or posix time milliseconds 或任何其他可以轻松打印的适当类型 来自 Epoch 我实际上只需要打印由posix time ptime
  • tar.gz 和 tgz 是同一个东西吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我创建了 tgz 文件tar czvf filecommand then 我最终得到了一个 tgz 文件 我想知道它和tar gz 之间的
  • 在 MacO 和 Linux 上安装 win32com [重复]

    这个问题在这里已经有答案了 我的问题很简单 我可以安装吗win32com蟒蛇API pywin32特别是 在非 Windows 操作系统上 我一直在Mac上尝试多个版本pip install pywin32 都失败了 下面是一个例子 如果你
  • 在Linux中创建可执行文件

    我计划做的一件事是编写 非常简单的 Perl 脚本 并且我希望能够在不从终端显式调用 Perl 的情况下运行它们 我明白 要做到这一点 我需要授予他们执行权限 使用 chmod 执行此操作非常简单 但它似乎也是一个稍微费力的额外步骤 我想要

随机推荐

  • 无效的 PHP JSON 编码

    我正在 PHP 5 3 1 中的一个项目中工作 我需要将 JSON 字符串发送到 web 服务 在 python 中 但是从 json encode 获得的结果不会作为有效的 JSON 传递 我正在使用 JSLint检查有效性 我应该补充一
  • 在 Windows powershell 中使用 svn 缺少参数 -m

    我正在尝试在 Windows PowerShell 上运行它 svn ci m directory name 但它返回 svn E205005 日志消息是一个路径名 F 是故意的吗 使用 force log 覆盖 我尝试 cd 该目录并在没
  • Django持久数据库连接

    我将 django 与 apache mod wsgi 和 PostgreSQL 都在同一主机上 一起使用 并且我需要处理大量简单的动态页面请求 每秒数百个 我面临的问题是 瓶颈是 django 没有持久的数据库连接 并且在每个请求上重新连
  • lapply 和 mutate_all/for 循环

    我在列表中有几个数据框 我必须通过标准化所有列中的所有数据来修改这些数据框 基本上 将每行 列除以该列数的总和 使用 lapply 加载所有原始数据帧后 我想迭代所有列以执行此类操作 即 mutate df df my column df
  • 如何正确解析这种日期?

    我无法为我的日期找到正确且干净的工作解决方案 其格式如下 201406082159 6月8日 21 59 此处 我上次尝试的是这样的 SimpleDateFormat format2 new SimpleDateFormat YYYYMMD
  • 将宽变长,但重复特定列

    我有一个数据框 如下所示 df2 pd DataFrame pid 1 2 3 4 BP1Date 12 11 2016 12 21 2016 12 31 2026 np nan BP1di 21 24 25 np nan BP1sy 12
  • SIM900 GSM/GPRS 未获得正确的 AT+CREG?回答

    我使用的是带有 IComsat SIM900 GSM GPRS 扩展板的 Arduino UNO 使用以下教程 Arduino 实时 GPS 追踪器 http www samaria me uk 2011 12 arduino live g
  • org.xml.sax.SAXParseException;cvc-complex-type.2.4.c:匹配通配符严格,但找不到声明

    我在这里要做的就是让邮件发送器通过我的 Java 代码工作 我查看了类似的问题 并按照此处的建议删除了 spring 版本号cvc complex type 2 4 c 匹配通配符严格 但找不到元素 mvc annotation drive
  • Play框架2.5.0 Websockets示例[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 播放框架 2 5 0 Websockets 示例 在 play 2 5 0 websockets 代码
  • 创建新分支时,基础分支是什么?

    创建分支时我需要确认 纠正我的假设 如果我在主分支中 执行以下操作后 git checkout b some branch 这意味着我已经从 master 开始了一个新分支 另一方面 如果我签出另一个分支 并在那里创建一个分支 git ch
  • 将网络表单值返回至 Google 应用脚本

    我有一个谷歌表格脚本 允许用户输入某些数据 当用户单击 确定 时 我希望能够将这些值传递回谷歌应用程序脚本中的函数 这是我试图开始工作的 Google 表格脚本 函数 checkLogin 确实会被调用 直到我尝试从网页将值传递给它 剧本
  • 如何监控`preStop`命令的执行?

    我正在尝试使用 pod 的生命周期事件 问题是来自的命令preStop根本不运行 有什么办法可以监控它是否已启动吗 容器的日志为空 lifecycle preStop exec command bin sh c clean sh 我只想添加
  • 矩阵到 JTable

    我需要用静态二维数组填充 JTable 我创建了这个模型JTable public class InsertMatToJTable extends AbstractTableModel String titre age real sex r
  • 如何随机选择三个字符串之一?

    我必须创建一个密码 我相信我可以做到 但是我一开始就被难住了 我有3个字符串 我想随机选择这三个字符串之一 有人知道该怎么做吗 Dim sLowerCase As String qwertyuiopasdfghjklzxcvbnm Dim
  • 将文件拖放到 SharePoint Web 部件中以上传到 DocLibrary

    是否可以创建一个 SharePoint wss3 或 MOSS 2007 Web 部件 以允许将文件拖放到其上 然后将文件上传到预定义的文档库中 我想这需要某种形式的客户端脚本 Ajax 但我对 ajax 的了解有点粗略 从迄今为止的探索来
  • 已使用的 Objective-C 前缀列表

    我正在为我正在编写的库选择一个命名空间 并且希望避免与其他命名空间发生冲突 有谁知道有一个网站列出了所有正在使用的类前缀 https cocoadev github io ChooseYourOwnPrefix https cocoadev
  • FFMPEG 没有按预期“切割”

    我通过一个简单的 system process 使用 FFMPEG 来自 java 应用程序 并尝试将视频切成块 我正在尝试将其切成 10 秒的增量 我的 FFMPEG 命令如下所示 ffmpeg i SampleVideo mp4 ss
  • 在 Android BLE 中处理指示而不是通知

    使用蓝牙 SIG 应用加速器代码 它很好地演示了蓝牙低功耗的不同概念 然而 它没有提到与通知相反的指示 我知道与通知不同 需要确认指示 并且在代码中我会这样做byte val enabled BluetoothGattDescriptor
  • XMLHttpRequest:网络错误 0x80070005,在 Microsoft Edge(但不是 IE)上访问被拒绝

    我有一个非常简单的 ajax 请求 见下文 服务器正在使用 CORS 并且在 IE 10 Chrome Firefox 和 Opera 中运行良好 On 微软边缘但是 它失败了 XMLHttpRequest 网络错误 0x80070005
  • Linux 中 POSIX 可靠信号和 POSIX 实时信号有什么区别?

    我读了一个手册页signal using 男人7信号 http man7 org linux man pages man7 signal 7 html我看到两种类型的信号 所以 我有一个问题 有什么区别POSIX 可靠信号 and POSI