问题标签 [aio-write]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
24359 浏览

python - 在python中可以异步写入文件吗?

有没有一种简单的方法在 Python 中异步写入文件?

我知道Python 自带的文件 io被阻塞了;在大多数情况下这很好。对于这种特殊情况,我需要写入根本不阻塞应用程序,或者至少尽可能少地阻塞。

0 投票
4 回答
3873 浏览

c++ - OS X 与 Linux 上的 AIO - 为什么它在 Mac OS X 10.6 上不起作用

我的问题很简单。为什么下面的代码可以在 Linux 上运行,而不能在 Mac OS X 10.6.2 Snow Leopard 上运行。

要编译,将文件保存到 aio.cc,然后g++ aio.cc -o aio -lrt在 Linux 和g++ aio.cc -o aioMac OS X 上编译。我使用 Mac OS X 10.6.2 在 Mac 上进行测试,使用 Linux 内核 2.6 在 Linux 上进行测试。

我在 OS X 上看到的失败是 aio_write 失败并显示 -1 并将 errno 设置为 EAGAIN,这仅表示“资源暂时不可用”。这是为什么?

更新(2010 年 2 月):OSX 根本不支持套接字上的 AIO。无赖!

0 投票
2 回答
285 浏览

perl - 如何在perl中等待异步文件

我正在尝试测试异步写入文件的日志记录模块...单元测试尝试读取日志以确保写入的消息与预期匹配。但是,我发现模块的异步写入直到单元测试完成后才到达文件,即使我睡觉等待文件任意时间长度也是如此。我通过在 aio_close 旁边添加打印语句来验证文件直到最后才关闭。我能做些什么来测试这个?

0 投票
1 回答
1099 浏览

c++ - Linux 系统调用 aio_write() 失败,错误代码为 22 (EINVAL)

我有一个使用 linux aio_write 和 aio_read 的测试实用程序。这个测试实用程序包装了我的静态库并对其进行测试。这个库是多线程的黑盒。

到目前为止,它运行良好。但是现在我们对这个黑盒做了很大的改变,这会导致测试实用程序在提交第一个 IO 时立即失败。此 IO 返回 errno 22 == EINVAL。

根据 aio_write 手册页,如果以下字段之一无效,则会发出此错误 --> aio_offset, aio_reqprio, aio_nbytes。我在 gdb 中运行它并测试它们的值,只要与struct aiocb *输入参数中的所有其他值一样。我的结论是输入的参数都是有效的。

我怀疑线程在黑盒内的工作方式发生了一些变化。这就是我怀疑导致此问题的原因(我找不到任何其他解释)。

我真正想了解的是:哪些情况会导致 aio_write() 返回 EINVAL 错误代码???

只是为了澄清一下,当我将黑盒替换为旧版本时,使用相同的测试实用程序它工作正常......(我还在这里测试了输入参数,因为它们与错误版本的输入参数匹配)。

0 投票
1 回答
135 浏览

c - 充满垃圾的C文件

我需要用相同的数字填充我的文件,例如00000....我想使用异步aio_write函数。但在这里我得到了什么

这是我的代码

这是我的异步写入函数(我认为这个函数不好)

我也在等待 asyncronius 函数结束

这也是我的完整程序

0 投票
1 回答
33 浏览

c - 用零归档文件

我的文件应该用 0 填充。我想这样做aio_write结果我的文件应该看起来像000000000....但结果我得到我的文件充满了垃圾

我什至无法想象出了什么问题。首先我使用的是异步写入,所以我需要等待da_aio_write完成

这也是我的写作功能

和我的主要

任何想法我做错了什么?编辑:我知道我的 da_aio 写在 main 之后结束,因为我编译后得到

编辑我的完整更新代码

0 投票
2 回答
450 浏览

asynchronous - 为什么 aio_write() 行为错误?

我想使用 aio_write 写入 2 个文件。

使用 32KB 缓冲区并为 1 个文件重复 aio_write 2048 次。(文件大小为 64MB)

但是,现在结果不是 64MB,而是大小为 64MB + 32KB。

有时文件也是由垃圾写入的。我想填写“A”来归档。

请帮我。