C
|
|
Übersicht
|
| Einführung |
Mehr... |
Links |
RFCs |
Books
|
| PROGRAMMIERUNG |
Was ist C?
Was kann C?
Sicherheitsrisiko C?
Beispiel - Dies ist ein Test
Credits
|
|
Was ist C?
|
|
C ist ähnlich wie TurboPascal eine vielseitig einsetzbare Programmiersprache, die auch bei
vielen grossen Programmierprojekten als die Referenzsprache angesehen wird. C nimmt allerdings seit jeher eine
Sonderrolle ein. Die Palette an bisher in C umgesetzen Projekten reicht von Betriebssystemen und Office-Anwendungen bis
hin zu zahlreichen wissenschaftlichen und industriellen Anwendungen. Selbst einige
Compiler, die für andere Sprachen entwickelt wurden, basieren auf C.
C hat eine grosse Verbreitung erfahren, so dass Informationsquellen im Internet, Diskussionsforen und gute Literatur schnell
zu finden sind.
|
|
Was kann C?
|
Für C braucht man nur ein kleines Vokabelheft. Mit den wenigen vorhandenen Befehlen lassen sich trotzdem die komplexesten
Anforderungen realisieren. Hier die 32 Vokabeln:
|
|
char, double, enum, float, int, long, unsigned, short, signed, struct, typedef, union, void
auto, static, register, extern
|
break, case, continue, default, do, else, for, goto, if, return, sizeof, switch, while
const, volatile
|
|
Trotz oder gerade wegen der wenigen Befehle erreicht man in C schnell eine komplexe Tiefe, was Vor- und Nachteile haben
kann. Aufgrund der abstrakten Formulierung von C ist sie relativ maschinennah und damit schnell in der
Verarbeitungsgeschwindigkeit. Jedoch kann dies auch Probleme für Einsteiger machen, die versuchen, diese Sprache zu
verstehen. So wird auch die Ansicht vertreten, C erst als weiterführende Sprache zu lernen und vorerst mit
Programmiersprachen zu beginnen, die einen geringeren Abstraktionsgrad besitzen. Dennoch ist es nicht ausgeschlossen
mit C zu beginnen. Für professionelle Programmierer aber ist C die Basis zur Realisierung von grossen, umfangreichen
Programmen.
|
|
Sicherheitsrisiko C?
|
|
C bietet keine integrierten Mechanismen zum Überprüfen und Einhalten von Grenzen. Hier ist vor allem der
Programmierer angehalten, eine entsprechende Prüfung vorzunehmen, um einen Pufferüberlauf (Buffer Overflow)
zu vermeiden. Ansonsten kann es passieren, dass im harmlosesten Fall das Programm abstürzt, mit einer
Speicherschutzverletzung auf sich aufmerksam macht oder im schlimmsten Fall sich die Möglichkeit ergibt,
beliebigen, schadhaften Code einzuschleusen.
Dass dies vor allem bei komplexen Programmen nicht immer leicht zu handhaben ist, zeigt sich schon allein
in den stets anhaltenden Meldungen von neuen Exploits, die oftmals auf Pufferüberläufen basieren.
Bei der Verwendung von Befehlen wie gets(), sprintf(), vprintf(), strcat(), strcpy() und scanf() sollte
man dieses potentielle Fehlverhalten im Hinterkopf haben und seinen Code mit einer entsprechenden
Bereichsgrenzenprüfung versehen.
|
|
Beispiel: Test-Routine in C
|
#include <stdio.h>
main(void)
{
printf ("Dies ist ein Test.\n");
}
|
1 Einbinden der Headerdatei für Ein-und Ausgaben
2 Hauptfunktion
3 Anfang einer Anweisung
4 Ausgabebefehl
5 Ende der Anweisung
|
|
Ausgabe des Textes: Dies ist ein Test
|
|
Bericht von : [ CONVEX ]
|
Überarbeitet von : -
|
|
|