docs/cut

changeset 11:04a8a33fc48a

Zwischenstand
author markus schnalke <meillo@marmaro.de>
date Mon, 11 May 2015 17:14:00 +0200
parents 7e1214b556b9
children 9f17c512fb5c
files cut.txt
diffstat 1 files changed, 32 insertions(+), 0 deletions(-) [+]
line diff
     1.1 --- a/cut.txt	Mon May 11 07:09:00 2015 +0200
     1.2 +++ b/cut.txt	Mon May 11 17:14:00 2015 +0200
     1.3 @@ -345,6 +345,38 @@
     1.4  eigenen Einschaetzung des Lesers ueberlassen bleiben.
     1.5  
     1.6  
     1.7 +Die interne Struktur des C-Codes ist meist aehnlich. Neben der
     1.8 +obligatorischen main-Funktion, die die Kommandozeilenargumente
     1.9 +verarbeitet, gibt es im Normalfall eine Funktion, die die
    1.10 +Feldauswahl in eine interne Datenstruktur ueberfuehrt, desweiteren
    1.11 +haben fast alle Implementierungen separate Funktionen fuer die
    1.12 +zwei bzw. drei Modi. Bei den POSIX-konformen Implementierungen
    1.13 +wird die `-b -n'-Kombination als weiterer Modus behandelt, und
    1.14 +damit in einer eigenen Funktion umgesetzt. Nur bei der fruehen
    1.15 +System III-Implementierung (und seiner 4.3BSD-UWisc-Variante)
    1.16 +wird nichts aus der main-Funktion ausgelagert, ausser den
    1.17 +Fehlerausgaben.
    1.18 +
    1.19 +Bei System III ist die Anzahl der moeglichen Felder und damit auch
    1.20 +die Zeilenlaenge auf 512 begrenzt.
    1.21 +
    1.22 +Bei 4.3BSD-Reno liegt die Grenze bei _BSD_LINE_MAX
    1.23 +
    1.24 +NetBSD 1993 _POSIX2_LINE_MAX
    1.25 +
    1.26 +NetBSD 2012 dyn alloc
    1.27 +
    1.28 +
    1.29 +4.3BSD-Reno
    1.30 +         * set a byte in the positions array to indicate if a field or
    1.31 +         * column is to be selected; use +1, it's 1-based, not 0-based.
    1.32 +         * This parser is less restrictive than the Draft 9 POSIX spec.
    1.33 +         * POSIX doesn't allow lists that aren't in increasing order or
    1.34 +         * overlapping lists.  We also handle "-3-5" although there's no
    1.35 +         * real reason too.
    1.36 +
    1.37 +
    1.38 +
    1.39  Schaut man sich die SCCS-IDs (die vom damaligen
    1.40  Versionskontrollsystem eingefuegt wurden) in den BSD-Quellen an,
    1.41  dann findet man dort Versionsnummern, die die Entwicklung