C

Aus Coderz.CC Wiki
Wechseln zu: Navigation, Suche

C ist eine imperative, nicht Objekt orientierte, Highlevel Programmiersprache, welche in ihren Anwendungsmöglichkeiten uneingeschränkt ist. Es ist möglich in C Betriebsystem Entwicklung zubetreiben, eben so wie die Erstellung einfacher Userland Anwendungen.

Inhaltsverzeichnis

Kompilierung

Im Gegensatz zu Sprachen wie Java, C# oder PHP wird C weder interpretiert noch in Bytecode übersetzt was auch den immensen Vorteil der Sprache ausmacht. Der Code wird in Assembler umgewandelt und danach gelinkt, durch dieses Verfahren ist C um einiges effizienter als andere Sprachen dafür jedoch nicht so mächtig. Wofür man in Perl 5 Zeilen braucht kann in C das 6-Fache benötigen.

Sicherheit

Da C in ASM übersetzt wird gibt es eine Vielzahl von Sicherheitschwachstellen die bei unaufmerksamer Programmierung auftreten können. Der Klassiker ist der Buffer Overflow, welcher zu einer Ausführung von Programmcode führen kann. Auch wenn viele Betriebsystemhersteller bemüht sind Sicherheit-Mechanismen(ASLR, Non-Exec-Stack) in ihre Produkte zu integrieren, ist es meist nur ein Hindernis. Aus diesem Grund ist es Aufgabe des Coders sicheren Code zu verfassen.

Beispiele

Hallo Welt!

#include <stdio.h> //Standard IO Bibilothek einbinden
 
int main(int argc, char **argv[]) //entry point
{
  printf("Hallo Welt!"); //Ausgabe an das Terminal.
  return 0; //Programm ohne fehler beenden
}

Der erste Buffer Overflow

#include <stdio.h> //Standard IO Bibilothek einbinden
 
char a_to_small_buffer[10];
 
int main(int argc, char **argv[])
{
  strcpy(a_to_small_buffer, argv[1]); //Das erste Argument nach a_to_small_buffer verschieben
  return 0; //Programm (hoffentlich) fehlerfrei beenden!
}
Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Werkzeuge