مكتبات C وهياكل البيانات المحمولة والمستقلة. (C99)
كل مجلد مستقل بذاته ويحتوي على زوج رأس/مصدر واحد. لا يوجد
إنشاء للمكتبات، فقط قم بنسخ الملفات التي تريدها.
على سبيل المثال، إذا كنت تريد المُسجل، فانسخ sc_log.h وsc_log.c إلى مشروعك.
توجد تغطية فرعية بنسبة 100% على نظام التشغيل Linux ويعمل نظام CI عليه
نظام التشغيل: لينكس، ماك، فري بي إس دي وويندوز المجمعين: دول مجلس التعاون الخليجي، كلانج، MSVC القوس: x64، aarch64،armv6(32 بت)،armv7(32 بت)،ppc64le،s390x(big endian)،riscv64 المطهرات : مطهرات valgrind و clang/gcc (العنوان، غير محدد، الموضوع)
مكتبة | وصف |
---|---|
صفيف | صفيف/ناقل عام |
عازلة | مخزن مؤقت لمتغيرات التشفير/فك التشفير، مناسب بشكل أفضل لتطبيقات البروتوكول/التسلسل |
حالة | مجمع الحالة لـ Posix وWindows |
CRC32 | يستخدم Crc32c تعليمات وحدة المعالجة المركزية crc32c إذا كانت متوفرة |
كومة | الحد الأدنى من الكومة التي يمكن استخدامها كحد أقصى لقائمة انتظار الكومة/الأولوية أيضًا |
ini | محلل إيني |
قائمة مرتبطة | قائمة مرتبطة تدخلية |
المسجل | المسجل |
رسم خريطة | هاشماب عنونة مفتوحة عالية الأداء |
خريطة الذاكرة | غلاف Mmap لـ Posix وWindows |
كائن المزامنة | غلاف Mutex لـ Posix وWindows |
خيار | محلل وسيطة Cmdline. واحد أساسي جدا |
الأداء | أداة قياس الأداء للحصول على معلومات عدادات الأداء عبر perf_event_open() |
طابور | قائمة الانتظار العامة التي يمكن استخدامها كقائمة انتظار/مكدس/قائمة أيضًا |
الشوري | وظائف المرافق |
إشارة | إشارة snprintf الآمنة ومعالج الإشارة (التعامل مع CTRL + C، طباعة التتبع الخلفي عند التعطل وما إلى ذلك) |
المقبس | مآخذ الأنابيب / tcp (أيضًا مآخذ مجال Unix) /Epoll/Kqueue/WSAPoll لـ Posix وWindows |
خيط | الطول مسبوق، سلاسل C منتهية بقيمة خالية. |
خيط | مجمع الموضوع لPosix وWindows. |
وقت | وظائف الوقت والنوم لـ Posix وWindows |
مؤقت | تنفيذ عجلة التوقيت المجزأة مع عمليات الاستقصاء/الإلغاء السريعة |
أوري | محلل uri الأساسي |
هل هي أفضل من المكتبة X؟
غالبًا ما أستخدم هذه المكتبات للتطبيقات عالية الأداء من جانب الخادم. أيضًا،
أنا أهتم بالكود المقروء وسهل التصحيح. وباختصار، تظهر هذه المكتبات
ذوقي (المقايضات) حول الأداء/تصميم واجهة برمجة التطبيقات/إمكانية القراءة. يجوز لك أو قد
ليس مثل ذلك.
لماذا لا تقوم بتغيير واجهة برمجة التطبيقات (API) هنا في X، بحيث يكون استخدامها أسهل؟
أرسل طلب سحب من فضلك ولكن تأكد من عدم تقديم طلب سحب غير محدد
سلوك. من الممكن توفير واجهات برمجة تطبيقات أفضل، خاصة للمكتبات العامة،
إذا كنت لا تهتم بالسلوكيات غير المحددة. أحاول تجنب ذلك.
ما هي الطريقة الأكثر فعالية لاستخدام هذه المكتبات؟
تماما مثل أي رمز آخر. أضف إلى مشروعك كملفات مصدر واستخدمها بشكل مثالي
-O3 -فلتو + بي جو. قد لا يحدث أي فرق في حالة الاستخدام الخاصة بك بالرغم من ذلك.
هل يتم استخدام المكتبة X في أي منتج؟
يتم استخدام بعض المكتبات في الإنتاج ولكن يرجى اختبار نفسك دائمًا.
هل هناك أي إطلاق؟
الرجاء استخدام الفرع الرئيسي. تعتبر مستقرة.
هل ستحافظ على استقرار API؟
من فضلك لا تتوقع واجهة برمجة تطبيقات مستقرة. هذه المكتبات تماما
صغيرة (معظمها أقل من بضع مئات من أسطر التعليمات البرمجية) ومن الأفضل أن تكون أنت
من المفترض قراءة الكود وفهم ما يفعله وتكييفه مع احتياجاتك
الاحتياجات. لذلك، لا ينبغي عليك تحديث المكتبات بشكل أعمى. أتوقع منك التعامل
أي اختلافات محتملة في واجهة برمجة التطبيقات (API) بسهولة. ومع ذلك، سأبذل قصارى جهدي للحفاظ عليه
واجهة برمجة التطبيقات مستقرة.