- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
http://linux.die.net/man/2/signal
"signal() sets the disposition of the signal signum to handler, which is either SIG_IGN, SIG_DFL, or the address of a programmer-defined function (a "signal handler")."
我发现它所做的描述含糊不清(网络和 Linux 编程的新手)。这是某种回调设置功能吗?现在我的代码(我还没有编译)正在使用它:
signal( SIGIO, readMessage );
其中 readMessage 是一个函数。 SIGIO 定义为:
SIGPOLL is the signal sent to a process when an asynchronous I/O event occurs.
所以综上所述,我只能猜测当某个异步 I/O 事件发生时,函数 readMessage( int ) 被调用了?这类似于 Qt 中的槽/信号吗?
我的另一个问题是,在网络编程的上下文中,I/O 事件到底是什么?返回的是接受调用吗?
最佳答案
在 *nix 上,信号是从内核到用户空间的回调。它们有点类似于中断,可以认为是硬件对操作系统的回调。
与 Qt 中的信号/槽相比,它们更像是基于事件的系统中的事件。在 Qt 中,一个组件可以发出信号,信号可以被其他组件中的多个槽接收,程序设置信号和槽之间的连接,在其他系统(Xlib、Win32)中,程序接收系统预定的事件。
*nix 支持阻塞和非阻塞套接字。 poll()
和 select()
系统调用允许程序等待 I/O 事件。作为 poll()
/select()
的替代方案,BSD 和 Linux 也可以在 I/O 事件发生时发送信号(默认为 SIGIO),实现一种异步 I/O 的形式。更多信息可以在 fcntl()
的联机帮助页中找到,查找 F_SETFL
、F_SETOWN
、F_SETSIG
。
关于linux - signal() 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12658440/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!