Home   Literatur-Übersicht   


The Standard C Library

P.J.Plauger, The Standard C Library

Prentice Hall, 1992

ISBN 0-13-131509-9

 

 

Es gibt unzählige Bücher, die eine Einführung in die Sprache C liefern, aber es gibt nur wenige, die die Library beschreiben. Dabei ist die Library einer der größten Pluspunkte von C, verglichen mit anderen Sprachen:

Woher erfährt nun der Software-Entwickler, welche Funktionen ihm bereits vom Compiler zur Verfügung gestellt werden? Aus der Hilfe seiner Integrierten Entwicklungs-Umgebung (IDE)?

Vermutlich stellt das für die meisten von uns die am leichtesten zugängliche Informationsquelle dar, aber sie hat ein grundsätzliches Manko: Man kann dort sinnvoll nur nach etwas suchen, von dem man nicht nur weiß, daß es existiert, sondern von dem man auch die Schreibweise kennt. Das ist das Problem: Wer käme schon auf die Idee, nach strtok zu suchen, wenn er einzelne Elemente eines Strings isolieren muß oder nach mktime, wenn er sich mit der unterschiedlichen Anzahl an Tagen der einzelnen Monate oder der Frage von Schaltjahren herumschlagen muß?

Deshalb bin ich froh, daß ich vor einigen Jahren auf dieses Buch aufmerksam wurde - ich glaube durch eine Rezension in Dr. Dobb's Journal. Es beschreibt sämtliche Funktionen, die Teil des Standards sind, und seitdem weiß ich - oder kann zumindest nachschlagen - was es alles bereits an Funktionen gibt. Die genaue Syntax kann ich dann im Zwiefelsfall im Buch nachlesen oder in der Online-Hilfe der IDE.

Aber Plauger macht in diesem Buch noch mehr: Er zeigt, wie die einzelnen Funktionen implementiert werden.

Da stellt sich natürlich die Frage, wem das nützen soll. Eine berechtigte Frage, denn Sie müssen diese Funktionen ja nicht implementieren - das hat der Hersteller Ihres Compilers schon für Sie getan.

Ich fand es hilfreich, aus mehreren Gründen. Zum einen ziehe ich es immer vor, eher zu viele als zu wenige Informationen zu haben. Ich fand es stellenweise interessant, die Implementierung bestimmter Funktionen nachzuvollziehen, man lernt eine Menge über C hinzu. Natürlich nur stellenweise, irgendwo gibt es eine zeitliche Grenze.

Zum anderen haben mir mehrfach gerade die Implementierungen genutzt: bei der Entwicklung für Embedded Systems. Compiler-Hersteller für Embedded Systems implementieren nicht alle Funktionen der Standard C Library. Das ist in Ordnung - und auch im Rahmen des Standardisierungsprozesses sanktioniert - denn z.B. die I/O-Funktionen kann der Compiler-Hersteller nicht liefern: jedes System sieht anders aus.

Andererseits fehlen mitunter Funktionen, bei denen es weit weniger verständlich ist. So hatte ein Compiler kein mktime, bzw. die Funktion existierte zwar, lieferte aber konstant -1 (Fehler). Es dauerte eine ganze Weile, bis ich dahinter kam, daß der Fehler gar nicht aus meinem Programm resultierte, sondern daß der Hersteller geschlampt hatte. Meiner Ansicht nach grenzt das an Unverschämtheit. Bei allem Verständnis für die Schwierigkeiten, Compiler für Embedded Systems zu entwickeln - mktime ist reine Datenverarbeitung. Es gibt keinerlei Abhängigkeit vom Betriebssystem oder von der Hardware, sondern es ist lediglich ein Datenformat in ein anderes zu überführen. Da der Hersteller sich nicht die Mühe macht, diese Funktion zu implementieren, zwingt er alle Entwickler, eigene Lösungen zu realisieren.

In einer solchen Situation ist es eminent praktisch, eine Implementierung zur Verfügung zu haben. Der Compiler stellt eine bestimmte - system-unabhängige - Funktion nicht zur Verfügung? Macht nichts, implementieren Sie sie einfach selbst - Plauger zeigt Ihnen, wie.

Jedes Kapitel des Buches beschreibt eines der zur Standrad Library gehörenden Header-Files. Alle sind nach dem folgenden Muster aufgebaut:

Mir als C-Programmierer hat dieses Buch sehr geholfen. Es gab eine Zeit, da trug ich es täglich vom Büro nach Hause und am nächsten Tag wieder ins Büro: Ich wollte es jederzeit im Zugriff haben. Ich hatte erst vor kurzem angefangen, mit C zu arbeiten und wollte sicher sein, daß ich vernünftig einsteige: daß ich weiß, welche Möglichkeiten C mir bietet und daß ich sie richtig nutze. (Ein weiteres Hilfsmittel war Lint - aber das ist ein anderes Thema.)

Ein Tip noch zum Schluß: Lesen Sie dieses Buch nicht unbeding von vorn nach hinten. Die Reihenfolge der Kapitel orientiert sich an der alphabetischen Reihenfolge der Standard C Header - das heißt, es beginnt mit <assert.h>, gefolgt von <ctype.h>, <errno.h>, etc. Die am häufigsten eingesetzten Header - die Sie vielleicht am ehesten interessieren - wie <stdio.h> oder <string.h> folgen daher erst am Schluß des Buches.

Aber vergessen Sie nicht, auch in die Kapitel zumindest einmal hineinzuschauen, die die weniger häufig benutzten Header behandeln. Sonst erfinden Sie womöglich eines Tages wieder ein Rad, das es längst gibt ...

Verwandte Themen:

Plauger, Brodie: Standard C, A Reference

 

Sie können sich auch benachrichtigen lassen, wenn es hier etwas Neues gibt: Wählen Sie die Themen aus, die Sie interessieren und geben Sie an, wie oft - oder wie selten - Sie informiert werden wollen.

Home   Literatur-Übersicht   Top  

Copyright © Helmut Giese, email: hgiese@ratiosoft.com
Parkstr. 41, 34119 Kassel, Tel.: 0561 - 766 59 50, Fax: 0561 - 766 59 51
Königstor 59, 34119 Kassel, Tel.: 0561 - 739 35 30, Fax: 0561 - 739 35 31

Web Design von Bianca Engler:   email    internet