Libbslack

Eine UNIX / C-Bibliothek von allgemeinen Dienstprogrammen für Programmierer mit Slack
Jetzt downloaden

Libbslack Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • GPL
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Libslack Team
  • Website des Verlags:
  • http://libslack.org/
  • Betriebssysteme:
  • Mac OS X 10.3.2 or later
  • Dateigröße:
  • 325 KB

Libbslack Stichworte


Libbslack Beschreibung

Eine UNIX / C-Bibliothek von allgemeinen Dienstprogrammen für Programmierer mit Lock Libsbelack ist eine freie und offene Quellbibliothek von allgemeinen Dienstprogrammen, die UNIX / C-Programmierung ein bisschen leichter auf dem Auge herstellt. Hier sind einige wichtige Funktionen von "libablack": Programmrahmen: · Der "Framework" -Teile von LibsLack sind am stärksten verpflichtet. Niemand mag Rahmenworks. Mach dir keine Sorgen, es ist nicht viel dabei. Wenn Sie es nicht mögen, tun Sie es vor, dass es nicht da ist. · Libbslack bietet die Fähigkeit, sich selbst zu identifizieren, die Befehlszeilenoptionsverarbeitung in einer einzigen Codezeile durchzuführen und "Standard" -GNU-WNU-Help-, --Versions- und Nutzungsnachrichten herstellen. Debugg- und Verbose-Messaging werden ebenfalls bereitgestellt und ist durch die Verwendung von "Standard-Befehlszeilenoptionen" Standard-, --debug- und --verbots "aktiviert. · Meldungen (einschließlich Fehler, Debug- und Verbose-Nachrichten) werden mit sauberer Anrufsyntax und flexiblen Semantik bereitgestellt. Nachrichten können auf Protokolldateien, Dateideskriptoren, Syslog oder Multiplex auf einem beliebigen der oben genannten Dateien (und an überall anderswo (z. B. Dialogfelder) geleitet werden, wenn Sie Ihre eigenen Nachrichtenhandleiter implementieren), ohne die Anrufsyntax zu ergänzen. · ISO C erhebt extreme Einschränkungen auf Signalhandleiter. POSIX verhängt weniger extrem extrem, aber immer noch nervige Einschränkungen. LibbsLack enthält Funktionen, die eine Abstraktionsebene zwischen den Signalhandlern bereitstellen, die Sie schreiben, und die realen (ISO C-kompatiblen) Signalhandler. Auf diese Weise können Sie uneingeschränkte Signalhandler schreiben. · Grobkörnige Persistenz von einfachen Konfigurationsinformationen wird durch die Verwendung von Java-Art-Eigenschaftendateien in "bekannten" Standorten bereitgestellt. Daemon Services: · Libbslack bietet Funktionen, die das Schreiben von Daemons trivial machen. Es enthält Funktionen, um ein Daemon zu werden und optional eine gesperrte PID-Datei zu erstellen, um sicherzustellen, dass nur ein einzelner Beispiel eines benannten Daemons gleichzeitig aktiv ist. Die Daemon-Funktion verhält sich angemessen, wenn der Client-Prozess von INIT (8) oder INETD (8) gestartet wird. Es gibt auch Funktionen, um die Analyse von einfachen Konfigurationsdateien zu strengen (wie diese im Verzeichnis / etc.). Es gibt auch Funktionen, die Ihnen dabei helfen, sicherere Daemons (d. H. Revoke setuid / setgid-Berechtigungen, die Kerndateigenerierung zu verhindern, Benutzer und Gruppe zu verhindern, die Sicherheit eines bestimmten Dateipfads zu testen). Es gibt auch Funktionen, um zu überprüfen, ob ein benannter Dämon läuft und es anhält. Netzwerkdienste: · LibsLack bietet Funktionen zur Vereinfachung der Implementierung von Netzwerkservern und Clients (TCP, UDP, Unicast und Multicast) sowie die (Text- oder binären) Anwendungsprotokolle, die sie verwenden. Netzwerkserver und -clients können in einer einzigen Code-Zeile eingerichtet werden. Es gibt eine transparente Unterstützung für IPv4-, IPv6- und UNIX-Domain-Buchsen-Adressen. Es gibt Unterstützung für Zuverlässigkeit über UDP. Textprotokolle werden nach Ablauf der Erwartungs- und Senden von Funktionen implementiert. Binäre Protokollpakete können verpackt und ausgepackt (unter Verwendung von Funktionen ähnlich wie Pack () und Pack () in Perl, aber Netzwerk / Speicherfreundlich). Es gibt auch eine Funktion, um E-Mails zu senden. Agentenorientierte Programmierung: · Libsbelack bietet ein generisches agierorientiertes Programmiermodell in Form des Agentendatentyps. Wie Objekte können Agenten auf äußere Reize reagieren. Im Gegensatz zu Objekten können Agenten auch unabhängige Aktionen annehmen. Dies wird durch Multiplexing-E / A-Ereignisse auf willkürlichen Dateideskriptoren mit Abfrage () oder SELECT () und auch Multiplex-Timer zur Planung von Aktionen ausgeführt. Anschließen und Trennen von Dateideskriptoren erfolgt in konstanter Zeit. Planen und Abbrechen der Aktionen erfolgt in ständiger Zeit. Die Timer-Wartung wird in konstanter Durchschnittszeit durchgeführt. Dies bedeutet, dass Agenten in Bezug auf die Anzahl der herausragenden Timer skalierbar sind und Tausende von geplanten Handlungen unterstützen können. Ein einzelnes Mittel kann wie eine einfache Ereignisschleife verwendet werden, oder mehrere Agenten können in beliebigen Netzwerken über mehrere Threads, Prozesse und / oder Hosts miteinander verbunden werden. Ein einzelner Agent ist nicht in Bezug auf die Anzahl der angeschlossenen File-Deskriptoren skalierbar, aber mehrere Agenten können kombiniert werden, um eine viel höhere Skalierbarkeit zu erreichen. Sie sind nützlich für vernetzte Anwendungen, verteilte Systeme und Simulationen. Datentypen: · Libsbelack bietet einen generischen sucalable Zeiger-Array-Datentyp mit dem Namen der Liste, einen generischen suelierbaren Hash-Tabellendatentyp namens Map und einen anständigen String-Datentyp, der mit Haufen von Funktionen (viele von Perl angehoben) geliefert wird. Es gibt auch abstrakte, einzelne und doppelt verbundene List-Datentypen mit optionalen, "sultierbaren" Freelisten. Entkoppelte Fadensicherheit: · LibbsLack bietet den Schließfachdatentyp, der Thread-Synchronisationsstrategien aus dem Clientcode entkoppelt. Dadurch kann Code geschrieben werden, der die Auswahl der Synchronisationsstrategie an den Client delegiert. Dies ermöglicht die Laufzeitwahl von Sperrstrategien, was bedeutet, dass der Endbenutzer sogar möglich ist, den Endbenutzer anzugeben, welche Verriegelungsstrategie verwendet werden soll. Es unterstützt gegenseitige Ausschlussschlösser, Leser / Schriftsteller-Schlössern und keine Verriegelung. Es gibt auch Debug-Versionen, die Nachrichten an die Standardausgabe drucken, um den Clients dabei zu helfen, Deadlocks zu finden. Siehe http://raf.org/papers/mt-discipline.html. Coprocesses und Pseudoterminals: · LibsLack liefert Funktionen zum Erstellen von Pseudo-Terminals tragbar und zum Erstellen von Koprozessungen, die entweder Rohre oder ein Pseudo-Terminal für die Kommunikation mit dem Client-Prozess verwenden. Sonstig: · Libbslack enthält Komfort- / Kurzheizfunktionen für zufällige Dinge, z. B. Lesen einer Textzeile mit einem beliebigen Zeilenending (UNIX, DOS oder Macintosh), FIFO- und Dateisteuerung, Abrufen von POSIX.1-Limits, Parsing Syslog-Einrichtung / Prioritätspaare, dynamische Zuteilung von Multi-dimensionale Arrays, Speicherpools, sichere Speicher, sichere Speicherpools, es gibt auch eine Heap-Sortierfunktion. Und es gibt auch Implementierungen von GNU getOopt_Long (), strlcat (), strlcpy (), snprinth (), vsnprintf (), vscanf (), aSprinf () und vasprintf () für Systeme, die nicht haben. Low-Level-API: · Obwohl in liblack viel Funktionalität vorliegt, ist die API selbst so gering wie möglich. Es gibt keine unvermieteten Datenstrukturen, die perfekt akzeptable Datenstrukturen umwickeln, die vom System bereitgestellt werden. Zum Beispiel kehren die Netzwerkfunktionen nicht ein eigenes angebautes Sockelobjekt zurück. Sie geben Dateibeschreibungen wie zugrunde liegende Systemaufrufe zurück. Die Coprozess-API ist ähnlich wie in den Geist nach Popen (3) und PCs (3). Die FETTLINE (3) -Funktion interoperiert perfekt mit Standard-E / A. Fehler werden über Errno nur wie Systemaufrufe und einige Standardbibliotheksfunktionen zurückgegeben. Sie mögen keine Errno nicht mögen, wenn Sie Thread-Programme schreiben, aber ich habe darauf gedacht, dass er, bis Errno weggeht, es am besten anzunehmen und einen Weg zu finden, um davon zu profitieren. Unbezahlbar wickelt das String-Modul ein Objekt um perfekte gute Zeichenkennzeichen, aber der zugrunde liegende CHAR-Zeiger ist immer zugänglich, und viele der String-Funktionen verfügen über Versionen, die an normalen C-Saiten arbeiten. · Der Zweck dieses Designs ist Faulheit. Es bedeutet, dass ich nicht jedes net zuständige Systemanruf oder eine Standard-String-Funktion in einer zusätzlichen Funktion einwickeln muss, und Sie müssen keine Last neuer Bezeichner für die Funktionalität erlernen, die Sie bereits zugreifen können. Gleiches gilt für Fehlercodes. Ich möchte sie nicht neu erfinden und Sie müssen sie nicht neu lernen. Es bedeutet auch, dass LibbSlack-Funktionen einfacher in bestehende Programme einbezogen werden können, um ihre Funktionalität ohne große Code-Umschreibungen zu verbessern und ohne dass eine steile Lernkurve erforderlich ist. Genaue Dokumentation: · Jedes Modul hat eine Manpage, die jede Funktion detailliert erklärt. Die Funktionsunterschriften in den Manpages werden systematisch gegen den Quellcode überprüft, um sicherzustellen, dass sie niemals synchronisiert werden. · In den Manpages gibt es viele Beispiele. Die meisten von ihnen werden systematisch kompiliert und ausgeführt, um sicherzustellen, dass sie niemals mit dem Quellcode synchron ausgehen. · Der eigentliche Text der Manpages kann nicht systematisch überprüft werden, aber regelmäßig ergibt sich Korrektur. Wenn Sie irgendwelche Fehler in der Dokumentation finden, lassen Sie es mich wissen. · Die gesamte Dokumentation hat die Form von Manpages, da Manpages schneller und zugänglicher sind als alles andere. Gründliche Prüfung: · LibsLack wird gründlich getestet. Das bedeutet nicht, dass es keine Fehler gibt, aber es bedeutet, dass es eine große Liste von Fehler gibt, die es nicht hat. Ausgenommen das Snprintf-Modul gibt es fast 2.800 Tests. Inklusive Snprintf-Modul gibt es fast 150.000 Tests. Diese Tests dienen auch als zusätzliche Beispiele.


Libbslack Zugehörige Software

Sommer

bietet Hilfe zur Entwicklung von Anwendungen, die automatisch Multimedia-Dateien von Webfeeds herunterladen können ...

171 490 KB

Herunterladen