Hierbei handelt es sich um eine Sammlung öffentlich zugänglicher (CC0) Codefragmente, die in C geschrieben wurden, um verschiedene allgemeine Aufgaben auszuführen, die typischerweise vom Betriebssystem, der Architektur und/oder dem Compiler abhängig sind. Grundsätzlich besteht unser Ziel darin, diese lästigen Präprozessor-Bedingungen von Ihrem Code auf unseren zu übertragen.
Module haben kein festes Ziel (wie C89), da dies einige Funktionen ausschließen würde; Stattdessen versuchen wir einfach, für jedes Modul die größtmögliche Unterstützung bereitzustellen. Wenn Sie eine Plattform haben, die für eine bestimmte Funktion nicht unterstützt wird, dies aber möglich sein könnte, teilen Sie uns dies bitte mit. Wir würden gerne versuchen, eine Möglichkeit zu finden, dies zu unterstützen.
Alles wird kontinuierlich mit verschiedenen Versionen von GCC, Clang und PGI (auf Travis CI), MSVC (auf AppVeyor) und Emscripten (auf Codefresh) getestet:
Zu den derzeit einsatzbereiten Modulen gehören:
<stdint.h>
)Es gibt auch Module, die vielleicht noch nicht für den breiten Einsatz bereit sind, aber von einem Test sehr profitieren würden:
Module können isoliert verwendet werden, einige funktionieren jedoch besser zusammen. Wenn Sie also das gesamte Repository zusammenhalten können, anstatt nur eine einzelne Datei zu kopieren, empfehlen wir Ihnen, dies zu tun.
Bitte scheuen Sie sich nicht, diesbezügliche Probleme einzureichen. Wenn Sie Probleme haben, werden wahrscheinlich auch andere Probleme haben, deshalb möchten wir sie gerne beheben.
Wenn Sie etwas beitragen möchten, reichen Sie bitte ein Problem oder eine Pull-Anfrage ein. Wenn Sie mithelfen möchten, indem Sie etwas Neues schreiben, werfen Sie einen Blick auf die „Verbesserungs“-Probleme in unserem Issue-Tracker, um Ideen zu erhalten.
Einige Dinge passen nicht wirklich in dieses Repository, deshalb hier ein paar kleinere Projekte, um Dinge portabel zu machen, die Sie interessieren könnten:
mman.h
Implementierung ( mmap()
usw. ) für Windows.Wenn es ein Projekt gibt, das Ihrer Liste hinzugefügt werden soll, reichen Sie bitte ein Problem oder eine Pull-Anfrage ein.