سؤال

ما الذي يتطلبه الأمر إلى الميناء libeio إلى Windows؟

هل كانت مفيدة؟

المحلول

بعد عام تقريبًا ، ما قد ترغب في النظر إليه (أنت أو أي شخص آخر يجد هذا عبر البحث أو Google) libuv, ، سابقا liboio. على عكس الإجابة المقبولة ، فإنه ليس كثيرًا حتى أن Windows كان ، أو في ذلك الوقت ، محرصًا لمفهوم I/O الحدث ، لم يكن معروفًا خارج دائرة Arcane لنظام التشغيل Windows Windows العميق المطورين. في مساحة Windows ، يتم تنفيذ مفهوم مماثل على أنه منافذ الإكمال I/O, ، لذلك ليس من الضروري أن يكون هناك نسخة/منفذ/شوكة/شوكة/شوكة/التناظرية ، فسيتعين عليها فقط الحصول على واجهة برمجة تطبيقات ذات مظهر libeio إلى شيء كان يستخدم IOCP أسفل الغطاء.

نصائح أخرى

يستخدم Libeio مفاهيم UNIX APIs و UNIX غير المعروفة في عالم Windows. الحلول التي لديك هي:

  • استخدم طبقة تجريد UNIX على Windows: مثل سيجوين أو خدمات Windows لـ UNIX. ولكن حتى مع هذه الطبقات ، سيكون لديك صعوبات في تشغيل رمز Libeio لأن هناك الكثير من التعليمات البرمجية المعتمدة على النظام مثل هذا:
# if __FreeBSD__ || defined __NetBSD__ || defined __OpenBSD__
#  define _DIRENT_HAVE_D_TYPE /* sigh */
#  define D_INO(de) (de)->d_fileno
#  define D_NAMLEN(de) (de)->d_namlen
# elif __linux || defined d_ino || _XOPEN_SOURCE >= 600
#  define D_INO(de) (de)->d_ino
# endif
  • أعد كتابة libeio مع مكتبة التجريد المحمولة مثل GTK+ (جيب في الواقع)، wxwidgets أو كيو تي. تنفذ أطر عمل Thosse بالفعل API القوية لروتين منخفض المستوى وخدمات الاتصالات وقنوات I/O وقوائم الانتظار غير المتزامنة. بذل مطورو تلك الأطر الكثير من الجهد للسماح بقابلية الرمز الخاص بهم. ليس عليك إعادة اختراع العجلة.

بالتأكيد ، الحل الثاني هو الأفضل ، مع الأخذ في الاعتبار الحجم الصغير نسبيًا لـ eio.c ، الملف C الوحيد لـ libeio.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top