Libslack

une bibliothèque UNIX / C d'utilitaires généraux pour les programmeurs avec mou
Télécharger maintenant

Libslack Classement & Résumé

Publicité

  • Rating:
  • Licence:
  • GPL
  • Prix:
  • FREE
  • Nom de l'éditeur:
  • Libslack Team
  • Site Internet de l'éditeur:
  • http://libslack.org/
  • Systèmes d'exploitation:
  • Mac OS X 10.3.2 or later
  • Taille du fichier:
  • 325 KB

Libslack Mots clés


Libslack La description

Une bibliothèque UNIX / C d'utilitaires généraux pour les programmeurs avec mou Libslack est une bibliothèque d'utilitaires généraux gratuite et open source qui rendra une programmation Unix / C un peu plus facile sur les yeux. Voici quelques caractéristiques clés de "Libslack": Cadre de programme: · Les parties "framework" de libslack sont liées à être les plus répréhensibles. Personne n'aime les cadres. Ne vous inquiétez pas, il n'y en a pas beaucoup. Si vous ne l'aimez pas, prétendez que ce n'est pas là. · LibSlack fournit la possibilité pour les programmes de s'identifier, exécutez le traitement des options de ligne de commande dans une seule ligne de code et de produire des messages «standard» de style GNU --Help, d'envoi et d'utilisation. La messagerie de débogage et de verbeuse est également fournie et est activée par l'utilisation des options de ligne de commande «standard» --Debug et --verbose. · Les messages (y compris les messages d'erreur, de débogage et de verbose) sont fournis avec la syntaxe d'appel propre et la sémantique flexible. Les messages peuvent être dirigés vers des fichiers journaux, des descripteurs de fichiers, syslog ou multiplexés à l'une des modifications ci-dessus (et de la boîte de dialogue d'ailleurs (par exemple) si vous implémentez vos propres gestionnaires de messages) sans compliquer la syntaxe d'appel. · L'ISO C impose des restrictions extrêmes sur les gestionnaires de signaux. POSIX impose des restrictions moins extrêmes mais toujours gênantes. Libslack contient des fonctions qui fournissent un niveau d'abstraction entre les gestionnaires de signaux que vous écrivez et les gestionnaires de signaux réels (ISO C). Cela vous permet d'écrire des gestionnaires de signaux sans restriction. · La persistance à grain grossier d'informations de configuration simples est fournie par l'utilisation de fichiers de propriétés de style Java dans des emplacements "bien connus". Services de démon: · LibSlack fournit des fonctions qui font des démons d'écriture trivial. Il inclut des fonctions pour devenir un démon et créer éventuellement créer un fichier PID verrouillé pour s'assurer que seule une seule instance d'un démon nommé est toujours active en même temps. La fonction Daemon se comporte de manière appropriée si le processus client est démarré par init (8) ou inetd (8). Il existe également des fonctions pour rationaliser l'analyse de fichiers de configuration simples (comme celles communément trouvées dans le répertoire / etc.). Il existe également des fonctions qui vous aident à écrire plus de démons sécurisés (c'est-à-dire REDOKE SETUID / SETGID PRIVILEGES, prévenir la génération de fichiers principaux, modifier l'utilisateur et le groupe, testez la sécurité d'un chemin de fichier donné). Il existe également des fonctions pour vérifier si un démon nommé est en cours d'exécution et de l'arrêter. Services réseau: · LibSlack fournit des fonctions pour simplifier la mise en uvre de serveurs réseau et de clients (TCP, UDP, unicast et de multidiffusion) et des protocoles d'application (texte ou binaire) qu'ils utilisent. Les serveurs réseau et les clients peuvent être configurés dans une seule ligne de code. Il existe une prise en charge transparente des adresses IPv4, IPv6 et UNIX Domain Adresses. Il y a un soutien à la fiabilité sur UDP. Les protocoles de texte sont implémentés par des séquences d'attente et d'envoi de fonctions. Les paquets de protocole binaires peuvent être emballés et déballés (à l'aide de fonctions similaires à pack () et à déballer () dans Perl mais réseau / stockage convivial). Il y a aussi une fonction pour envoyer un courrier. Programmation orientée de l'agent: · LibSlack fournit un modèle de programmation orienté générique sous forme de type de données de l'agent. Comme des objets, les agents peuvent réagir aux stimuli externes. Contrairement aux objets, les agents peuvent également prendre des actions indépendantes. Ceci est effectué en multiplexant les événements d'E / S sur des descripteurs de fichiers arbitraires à l'aide de sondage () ou de sélectionner () et également de multiplexages pour les actions de planification. La connexion et la déconnexion des descripteurs de fichiers se fait en temps constant. Les actions de planification et d'annulation sont effectuées en temps constant. La maintenance de la minuterie est effectuée en temps moyen constant. Cela signifie que les agents sont évolutifs en ce qui concerne le nombre de minuteries exceptionnelles et peuvent soutenir des milliers d'actions programmées. Un seul agent peut être utilisé comme une simple boucle d'événement ou plusieurs agents peuvent être connectés les uns aux autres sur des réseaux arbitraires sur plusieurs threads, processus et / ou hôtes. Un seul agent n'est pas évolutif par rapport au nombre de descripteurs de fichiers connectés, mais plusieurs agents peuvent être combinés pour obtenir une évolutivité beaucoup plus élevée. Ils sont utiles pour les applications en réseau, les systèmes distribués et les simulations. Types de données: · LIBSlack fournit un type de données de tableau de pointeur de pointeur générique appelé liste appelée liste de données de table de hachage générique appelée carte et un type de données de chaîne décent fourni avec des tas de fonctions (beaucoup soulevé de Perl). Il existe également des types de données de liste de liste simples et doublement liés avec des freelistes facultatifs, «Grillibles». Sécurité du fil découplé: · LIBSlack fournit le type de données de casier qui découle des stratégies de synchronisation de la synchronisation du code client. Cela permet d'écrire le code que les délégués le choix de la stratégie de synchronisation au client. Cela permet de sélectionner la sélection du temps d'exécution de stratégies de verrouillage, ce qui signifie qu'il est même possible de laisser l'utilisateur final spécifier la stratégie de verrouillage à utiliser. Il prend en charge les serrures d'exclusion mutuelle, les lecteurs / serrures de l'auteur et aucun verrouillage. Il existe également des versions de débogage qui impriment des messages à la sortie standard pour aider les clients à localiser des blocages. Voir http://raf.org/papers/mt-disciplined.html. Coprocesses et Pseudo terminaux: · LibSlack fournit des fonctions de création de bandes pseudo de manière portant et de créer des coprofessues utilisant des tuyaux ou un pseudo-terminal pour la communication avec le processus client. Divers: · Libslack contient des fonctions de commodité / sténographie pour des choses aléatoires telles que la lecture d'une ligne de texte avec une ligne de fin de ligne (Unix, DOS ou Macintosh), la récupération des limites de POSIX.1, une analyse Syslog et des paires de priorités de type Syslog de Tableaux multidimensionnels, pools à mémoire de mémoire, mémoire sécurisée, pools de mémoire sécurisée, il existe également une fonction de tri de tas. Et il existe également des implémentations de GNU getopt_long (), Strlcat (), SLLCY (), SNPRINTF (), VSNPRINTF (), VSSCANF (), Asprinf (), ASprinf () et VASPRINTF () pour les systèmes qui ne les ont pas. API de faible niveau: · Bien qu'il y ait beaucoup de fonctionnalités dans la libslack, l'API elle-même est aussi basse que possible. Il n'y a pas de structures de données gratuites qui enveloppent des structures de données parfaitement acceptables fournies par le système. Par exemple, les fonctions de réseautage ne renvoient pas un objet de socket cultivé à la maison. Ils renvoient des descripteurs de fichiers comme des appels système sous-jacents. L'API Coprocess est similaire dans l'esprit de population (3) et pclose (3). La fonction FgetLine (3) interopera parfaitement avec des E / S standard. Les erreurs sont retournées via Errno, comme des appels système et certaines fonctions de la bibliothèque standard. Vous ne pouvez pas aimer Errno si vous écrivez des programmes filetés, mais je pensais que jusqu'à ce que Erno s'en va, il est préférable de l'accepter et de trouver un moyen de bénéficier de celui-ci. Inavilablement, le module de chaîne enveloppe un objet autour de points de caractères parfaitement bons, mais le pointeur de caractère sous-jacent est toujours accessible et de nombreuses fonctions de chaîne ont des versions qui fonctionnent sur des chaînes C ordinaires. · Le but de cette conception est la paresse. Cela signifie que je n'ai pas besoin d'envelopper chaque appel du système ou de la fonction de chaîne standard liée au réseau dans une fonction supplémentaire et vous n'avez pas à apprendre une charge de nouveaux identifiants pour les fonctionnalités que vous savez déjà accéder. Il en va de même pour les codes d'erreur. Je ne veux pas les réinventer et vous n'avez pas besoin de les ressentir. Cela signifie également que les fonctions de Libslack peuvent être plus facilement intégrées aux programmes existants afin d'améliorer leurs fonctionnalités sans réécriture de code énormes et sans la nécessité d'une courbe d'apprentissage escarpée. Documentation précise: · Chaque module a un manchon qui explique chaque fonction en détail. Les signatures de fonction dans les manquages sont systématiquement vérifiées contre le code source afin de s'assurer qu'ils ne sortent jamais de synchronisation. · Il y a beaucoup d'exemples dans les manquages. La plupart d'entre eux sont systématiquement compilés et exécutés pour s'assurer qu'ils ne sont jamais synchronisés avec le code source. · Le texte réel des Mangages ne peut pas être vérifié systématiquement, mais il obtient une relecture régulièrement. Si vous trouvez des erreurs de quelque nature que ce soit dans la documentation, veuillez me le faire savoir. · Toute la documentation prend la forme de manquages car les manchages sont plus rapides et plus accessibles que toute autre chose. Test minutieux: · Libslack est minutieusement testé. Cela ne signifie pas qu'il n'y a pas de bugs, mais cela signifie qu'il existe une grande liste de bugs qu'il n'a pas. En excluant le module SNPRINTF, il y a près de 2800 tests. Y compris le module SNPRINTF, près de 150000 tests. Ces tests servent également d'exemples supplémentaires.


Libslack Logiciels associés