gpt4 book ai didi

c - libevent2 和文件 io

转载 作者:太空宇宙 更新时间:2023-11-04 01:42:12 25 4
gpt4 key购买 nike

我一直在玩弄 libevent2,我可以读取文件,但它会阻塞。有什么方法可以使文件读取不只在 libevent 中阻塞。或者,我是否需要为文件使用另一个 IO 库并使其抽取我需要的事件。

fd = open("/tmp/hello_world",O_RDONLY);
evbuffer_read(buf,fd,4096);

O_NONBLOCK 标志也不起作用。

最佳答案

在 POSIX 中,磁盘被认为是“快速设备”,这意味着它们总是阻塞(这就是 O_NONBLOCK 不适合你的原因)。只有网络套接字可以是非阻塞的。

有 POSIX AIO,但例如在带有一系列限制的 Linux 上,它不适合通用用途(仅适用于 O_DIRECT,I/O 必须扇区对齐)。

如果您想将普通的 POSIX IO 集成到异步事件循环中,人们似乎求助于线程池,其中阻塞系统调用由其中一个工作线程在后台执行。这种库的一个例子是 libeio

关于c - libevent2 和文件 io,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3461540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com