查看“Signals”的源代码
←
Signals
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
{{Stub}} 信号量(Signa)是Unix发明的用于异步信令的一种同步机制,并已集成到C标准 (<signal.h>) 中。 当进程接收到信号 (通过硬件发送,或另一个进程使用 <tt>raise()</tt> 发送) 时,将调用 “信号处理句柄(signal handler)”。 信号处理句柄是指一个处理信号量的C函数; 这个函数作为函数指针传递给<tt>signal()</tt> 函数。 (如果没有为给定信号定义信号处理句柄,则该信号量的 <tt>raise()</tt> 将中止程序。) == 处理句柄(Handling) == 信号处理句柄是比较 “另类的”,因为它破坏了C程序的单控制流结构。 不仅如此,在C中,几乎没有什么是原子性的,甚至i++这样的东西都不是 (除非i变量是sig_atomic_t类型的) --- 请注意,C11增加了更多的原子性支持。 请自行阅读手册了解。 == 另见 == *[http://www.linuxjournal.com/article/3985 Linux信号处理句柄模型] *[https://web.archive.org/web/20130926005901/http://users.actcom.co.il/~choo/lupg/tutorials/signals/signals-programming.html Unix信号量编程简介] *[https://freenode.logbot.info/osdev/20200110#c3058656 关于用信号量中断syscalls的一些IRC讨论] [[Category:IPC]]
本页使用的模板:
模板:Stub
(
查看源代码
)
返回至“
Signals
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
变体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息