2010-01-14 84 views
3

boost :: asio软件包包含使用IO完成端口在Windows中执行异步文件io的类。据我了解,asio包中包含的其他平台不支持异步文件io。将boost :: asio中的异步文件io扩展到Mac OS X

我想知道为了扩展异步文件io支持至少需要Mac OS X,但在某种程度上Linux还需要做些什么。我最感兴趣的是需要在asio方面做些什么,但由于我不是那么熟悉Mac OS X编程,我不介意在哪里可以找到更多关于如何执行异步文件io的信息的指针Mac OS X以及 - PBReadForkAsync我应该看什么?

更新: 我终于得到周围尝试使用的aio_read/aio_write Mac OS X上建立异步文件IO(外的boost :: ASIO),但我无法得到我所需要的回调数据(见How to get user data for aio signal handler in Mac OS X)。

回答

2

根据这一页,提高:: ASIO作品在OS X上,只有一个小的约束:http://www.boost.org/doc/libs/1_37_0/doc/html/boost_asio/overview/implementation.html

+0

短耳工作在Mac OS X是的,但是异步文件IO不可用。根据文档:Boost.Asio包括添加的类,以允许在POSIX文件描述符(如管道,标准输入和输出以及各种设备(但不是常规文件))上执行同步和异步读取和写入操作。 (http://www.boost.org/doc/libs/1_41_0/doc/html/boost_asio/overview/posix/stream_descriptor.html)。 – villintehaspam 2010-01-14 10:57:54

+0

更新了这个问题,使其更清楚地表明,它只是asio软件包的文件io部分,对于除Windows以外的其他平台而言“缺失”。 – villintehaspam 2010-01-14 11:18:22

+0

对不起,我也错过了。我认为更好的方法是将OS X视为POSIX系统,这样你就可以获得通用的Unixen和Linux。请参阅'aio_read(2)'系统调用和'man aio'。然后可能将课程提交给Boost,因为这真的应该在那里。 – 2010-01-14 21:36:00