Signals

来自osdev
Zhang3讨论 | 贡献2022年2月3日 (四) 12:49的版本 (创建页面,内容为“{{Stub}} 信号量(Signa)是Unix发明的用于异步信令的一种同步机制,并已集成到C标准 (<signal.h>) 中。 当进程接收到信号 (通过硬件发送,或另一个进程使用 <tt>raise()</tt> 发送) 时,将调用 “信号处理句柄(signal handler)”。 信号处理句柄是指一个处理信号量的C函数; 这个函数作为函数指针传递给<tt>signal()</tt> 函数。 (如果没有为给定信号定义信号处理句…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

This article is a stub! 此页面或段落为 草稿。 你可以通过更精确的编辑贡献 来帮助本wiki。

信号量(Signa)是Unix发明的用于异步信令的一种同步机制,并已集成到C标准 (<signal.h>) 中。 当进程接收到信号 (通过硬件发送,或另一个进程使用 raise() 发送) 时,将调用 “信号处理句柄(signal handler)”。 信号处理句柄是指一个处理信号量的C函数; 这个函数作为函数指针传递给signal() 函数。 (如果没有为给定信号定义信号处理句柄,则该信号量的 raise() 将中止程序。)

处理句柄(Handling)

信号处理句柄是比较 “另类的”,因为它破坏了C程序的单控制流结构。 不仅如此,在C中,几乎没有什么是原子性的,甚至i++这样的东西都不是 (除非i变量是sig_atomic_t类型的) --- 请注意,C11增加了更多的原子性支持。 请自行阅读手册了解。

另见