Вопрос

Что бы потребоваться в порт либериг к Windows?

Это было полезно?

Решение

Почти год спустя, то, что вы можете захотеть посмотреть (вы, или кто-либо еще, что нахожу это по поиску или Google) либувна, Раньше Либаоо. Вопреки принятому ответу, это не так много, что Windows, или в то время, было лишено концепции по совокупным вводам / выводом, она просто не была известна за пределами аркана круга глубокого знания Windows API Разработчики. В пространстве Windows аналогичная концепция реализована как Порты завершения ввода / вывода, Таким образом, это не так много, что версия Libeio / Port / Fork / Analog потребуется переоценить колесо, он просто должен иметь API LibeiO-API для чего-то, что использовал IOCP под капотом.

Другие советы

Libeio использует Unix API и концепции Unix, которые неизвестны в Windows World. У вас есть решения:

  • Используйте слой абстракции UNIX на Windows: как Cygwin. или Услуги Windows для Unix. Отказ Но даже с этими слоями у вас будут трудно использовать код Libeio, так как есть много системного кода, как это:
# если __freebsd__ || определил __netbsd__ || Определено __OPENBSD__ # Определить _dirent_have_d_type / * sight * / # define d_ino (de) (de) -> d_fileno # define d_namlen (de) (de) -> d_namlen # Elif __linux || определяется d_ino || _Xopen_source> = 600 # define d_ino (de) (de) -> d_ino # endif
  • Переписать Libeio с портативной библиотекой абстракции, как GTK + (оглядываться по факту), wxwidgets. или Qt.. Отказ Frameworks Thoses уже реализуют мощные API для рутины низкого уровня, услуги связи, каналов ввода / вывода и асинхронных очередей. Разработчики этих рамм предприняли много усилий, чтобы позволить переносимости их кода. Вам не нужно изобретать колесо.

Определенно, второе решение является лучшим, учитывая относительно небольшой размер EIO.c, единственный файл C libeio.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top