2010-01-14 89 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