Léo*_* 준영 13 unix operating-system signals
这个评论让我困惑:"kill -l通常列出所有信号".我认为信号意味着量子化的能量.
[已添加]请澄清Unix中的(计算)信号和物理信号.它们是完全不同的概念吗?
[已添加]范例之间是否存在重大差异?C,Python和Haskell等语言的含义是否相同?信号似乎是一个通用术语.
Joh*_*itb 15
手册指的是一种非常基本的机制,允许进程或操作系统通过发送信号通知其他进程.操作系统可以使用它来通知程序关于它们的堕胎(信号SIGABRT)或关于分段错误(通常由访问空指针引起SIGSEGV),以命名它们中的两个.
一些unix服务器使用信号,因此管理员可以使用kill它们向它们发送信号,使它们重新读取其配置文件,而不需要它们重新启动.
对某些信号采取默认操作,其他信号只是被忽略.例如,在接收到a时SIGSEGV,程序终止,而接收a SIGCHLD,意味着子进程死亡,默认情况下将没有任何特殊结果.
有一个ANSI C标准函数可以安装一个信号处理程序,它是一个可以在接收信号时执行某些代码的函数,称为signal(读入man signal).在不同的unix中,该函数表现不同,因此不鼓励使用它.它的manpage是指sigaction函数(read man sigaction),它表现一致,并且功能更强大.
Gre*_*ill 10
物理信号和Unix信号确实是不同的概念.当Unix信号从一个进程发送到另一个进程时,没有特定的相应物理信号.Unix信号仅仅是一种抽象,因此程序员可以讨论彼此通信的进程.
Unix信号可能被称为消息,事件,通知,甚至是像"frobs"这样的虚构术语.设计师只选择了"信号"这个名字,它就卡住了.
信号是目标进程或OS关于目标进程的消息.它是unix API的一部分(并在各种POSIX标准中定义).
阅读man kill,man signal和man sigaction.
其他可能有用的SO问题: