c - 信号驱动的 I/O 实际上在 linux 下被 epoll 弃用了吗?

标签 c linux performance io portability

<分区>

根据书 The Linux Programming Interface :

epoll provides a number of advantages over signal driven I/O.

我们可以安全地说:

信号驱动的 I/O 在 linux 下实际上已经被 epoll 弃用了吗?

最佳答案

如果我们假设“信号驱动 I/O”指的是 POSIX aio(异步 I/O)设施,使用 aio_sigevent 通知方法,那么可以公平地说,大多数需要异步操作的网络应用程序更喜欢 epoll 而不是 aio。弃用可能有点强烈。

我确实想指出,aio 工具在磁盘 I/O 方面优于 epollaiocb 结构允许为操作指定 aio_writeaio_read 命令的偏移量。因此,多个文件 I/O 操作可以在文件中的许多不同偏移量上并行发生。使用 epoll 的传统文件描述符 I/O 通常会被序列化为流操作,其中下一个操作在先前完成的操作停止的地方继续。

关于c - 信号驱动的 I/O 实际上在 linux 下被 epoll 弃用了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51825746/

相关文章:

scala - 加特林馈线 - 从列表中获取信息

c - 在C中读写AT命令到串口

c - 如何从内核代码内部加载内核模块?

linux - 从 Vim 内部如何替换所有行中第二次出现的模式?

mysql - 正确的 MySQL Left Join Query 会使小型数据库负担过重,尽管行已被索引

sql - Postgres 通过 ODBC 查询慢了一个数量级?

c++ - 传递二维数组,适用于 C 但不适用于 C++

c - 如何使用 opengl 函数制作用于在 c 中绘制 3D 点的 3D 窗口?

c++ - 使用const指针或指针作为 `std::map`的key

linux - 如何在 linux 中读取正在运行的进程的线程组 ID