Il s'agit d'une collection d'extraits de code du domaine public (CC0) écrits en C pour effectuer diverses tâches courantes qui dépendent généralement du système d'exploitation, de l'architecture et/ou du compilateur. Fondamentalement, notre objectif est de déplacer ces conditions conditionnelles ennuyeuses du préprocesseur de votre code vers le nôtre.
Les modules n'ont pas de cible fixe (comme C89) car cela empêcherait certaines fonctionnalités ; au lieu de cela, nous essayons simplement de fournir le support le plus large possible pour chaque module. Si vous disposez d'une plate-forme qui n'est pas prise en charge pour une fonctionnalité particulière mais qui pourrait l'être, veuillez nous en informer ; nous serions heureux d'essayer de trouver un moyen de le soutenir.
Tout est testé en continu avec différentes versions de GCC, Clang et PGI (sur Travis CI), MSVC (sur AppVeyor) et Emscripten (sur Codefresh) :
Les modules actuellement prêts à l'emploi comprennent :
<stdint.h>
)Il existe également des modules qui ne sont peut-être pas encore prêts à être utilisés à grande échelle, mais qui gagneraient grandement à être testés :
Les modules peuvent être utilisés isolément, bien que certains fonctionnent mieux ensemble, donc si vous pouvez conserver l'ensemble du référentiel au lieu de simplement copier un seul fichier, nous vous recommandons de le faire.
N'hésitez pas à signaler des problèmes concernant l'un de ces éléments ; si vous rencontrez des problèmes, il est probable que d'autres en auront également, c'est pourquoi nous aimerions les résoudre.
Si vous souhaitez contribuer à quelque chose, veuillez déposer un problème ou une pull request. Si vous souhaitez nous aider en écrivant quelque chose de nouveau, jetez un œil aux problèmes « d'amélioration » dans notre outil de suivi des problèmes pour trouver des idées.
Certaines choses ne correspondent pas vraiment à ce référentiel, alors voici quelques petits projets pour faire des choses de manière portable qui pourraient vous intéresser :
mman.h
( mmap()
, etc. ) pour Windows.S'il y a un projet que vous aimeriez voir ajouté à la liste, veuillez déposer un problème ou une pull request.