From a68a20ca28aa97b59ae784ba72cd552d84f1c773 Mon Sep 17 00:00:00 2001
From: Jan Klemkow <j.klemkow@wemelug.de>
Date: Wed, 9 Jan 2013 13:20:26 +0100
Subject: Finish std-c-lib text and presentation.

---
 document.asciidoc | 31 ++++++++++++++++++++++---------
 1 file changed, 22 insertions(+), 9 deletions(-)

(limited to 'document.asciidoc')

diff --git a/document.asciidoc b/document.asciidoc
index a2e30d3..6a36eb0 100644
--- a/document.asciidoc
+++ b/document.asciidoc
@@ -92,18 +92,31 @@ Standard-C-Bibliothek auf genommen, welche als Argument Maximallaengen
 
 [source,c]
 -------------------
-strcpy(char *dst, const char *src);
-strncpy(char *dst, const char *src, size_t len);
-strlcpy(char *dst, const char *src, size_t dstsize);
+char * strcpy(char *dst, const char *src);
+char * strncpy(char *dst, const char *src, size_t len);
+char * strlcpy(char *dst, const char *src, size_t dstsize);
+
+size_t strlen(const char *s);
+size_t strnlen(const char *s, size_t maxlen);
 -------------------
 
 Hierbei gibt es zwei Ansätze mit Längen umzugehen.
-TODO: strncpy() strlcpy()
-
- * gets()
- * strlen()
- * strcpy()
- * str..()
+Die Funktionen +strncpy(3)+ sowie +strlcpy(3)+ sind nachtraeglich in die
+Standard-C-Bibliothek aufgenommen worden um dem Programmierer fuer diese
+Aufgaben Sichere Funktionen zur Verfuegung zu stellen.
+Die Funktion wie +gets(3)+ wurde sogar vollkommen entfernt, weil diese Funktion
+unter keine Umstaenden sicher zu gebrauchen ist.
+Selbst bei scheinbar trivialen Aufgaben wie dem ermitteln der Laenge einer
+unbekannten Zeichenkette koennen Speicherbereichsverletzungen auftreten.
+Die Funktion +strlen(3)+ durch laeuft eine Zeichenkette solange, bis sie ein
+Null-Byte findet.
+Wenn die Zeichenkette nicht durch dieses Zeichen abgeschlossen ist, wuerde die
+Funktion aus den Speicherbereich der Zeichenkette herrauslaufen und dabei
+eventuell auf nicht gemappte Speicherbereiche zugreifen.
+Aus diesem Grund wurde die Funktion +strnlen(3)+ eingefuehrt.
+Diese Funktion bekommt ebenfalls die Laenge des Speicherbereichs uebergeben.
+Dadurch wird unabhaenig vom Inhalt der Zeichenkette die Grenze des
+Speicherbereichs eingehalten.
 
 == Netzwerk-Programmierung
 
-- 
cgit 

