2012-11-17 62 views
-2

是否存在與libev或libevent一樣的兼容ANSI-C的事件循環?我的要求是用-ansi標誌編譯。ANSI C兼容事件循環

謝謝。

+1

'gcc -ansi'選項等同於在C89中編譯。您是否問有沒有可以使用C89編譯的事件庫,而不使用不屬於標準C89庫的任何擴展(例如套接字)?如果沒有,爲什麼C89有限制?你正在尋求解決什麼問題?這是[XY問題](http://mywiki.wooledge.org/XyProblem)? –

+1

你已經列出了兩個不適合你的選擇,但你沒有告訴*爲什麼*。準確描述爲什麼這些不適合,以及你正在尋找什麼功能。沒有這些信息,人們無法幫助你。 – hlovdal

+0

我必須實現一個點對點系統,並且一個要求是它必須是ansi-c兼容的 - 也就是說。必須用-ansi標誌進行編譯。上面提到的庫不是ansi兼容的:如果你嘗試編譯,它們會給你一個錯誤。 – Pio

回答

1

在Linux上不能有任何嚴格的與ANSI兼容的事件循環,因爲事件循環的目的是巧妙地複用幾個輸入;在Linux上做這種多路複用,你必須調用一些系統調用,如poll(2),pselect(2)或朋友,並且所有這些系統調用在ANSI C(或ISO C99或ISO C2011)中都沒有標準化,只是在Posix中。