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