“Signals”的版本间差异
跳到导航
跳到搜索
(创建页面,内容为“{{Stub}} 信号量(Signa)是Unix发明的用于异步信令的一种同步机制,并已集成到C标准 (<signal.h>) 中。 当进程接收到信号 (通过硬件发送,或另一个进程使用 <tt>raise()</tt> 发送) 时,将调用 “信号处理句柄(signal handler)”。 信号处理句柄是指一个处理信号量的C函数; 这个函数作为函数指针传递给<tt>signal()</tt> 函数。 (如果没有为给定信号定义信号处理句…”) |
(没有差异)
|
2022年2月3日 (四) 12:49的最新版本
信号量(Signa)是Unix发明的用于异步信令的一种同步机制,并已集成到C标准 (<signal.h>) 中。 当进程接收到信号 (通过硬件发送,或另一个进程使用 raise() 发送) 时,将调用 “信号处理句柄(signal handler)”。 信号处理句柄是指一个处理信号量的C函数; 这个函数作为函数指针传递给signal() 函数。 (如果没有为给定信号定义信号处理句柄,则该信号量的 raise() 将中止程序。)
处理句柄(Handling)
信号处理句柄是比较 “另类的”,因为它破坏了C程序的单控制流结构。 不仅如此,在C中,几乎没有什么是原子性的,甚至i++这样的东西都不是 (除非i变量是sig_atomic_t类型的) --- 请注意,C11增加了更多的原子性支持。 请自行阅读手册了解。
