Mercurial > 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 wrap: on
line diff
--- a/cut.txt Mon May 11 07:09:00 2015 +0200 +++ b/cut.txt Mon May 11 17:14:00 2015 +0200 @@ -345,6 +345,38 @@ eigenen Einschaetzung des Lesers ueberlassen bleiben. +Die interne Struktur des C-Codes ist meist aehnlich. Neben der +obligatorischen main-Funktion, die die Kommandozeilenargumente +verarbeitet, gibt es im Normalfall eine Funktion, die die +Feldauswahl in eine interne Datenstruktur ueberfuehrt, desweiteren +haben fast alle Implementierungen separate Funktionen fuer die +zwei bzw. drei Modi. Bei den POSIX-konformen Implementierungen +wird die `-b -n'-Kombination als weiterer Modus behandelt, und +damit in einer eigenen Funktion umgesetzt. Nur bei der fruehen +System III-Implementierung (und seiner 4.3BSD-UWisc-Variante) +wird nichts aus der main-Funktion ausgelagert, ausser den +Fehlerausgaben. + +Bei System III ist die Anzahl der moeglichen Felder und damit auch +die Zeilenlaenge auf 512 begrenzt. + +Bei 4.3BSD-Reno liegt die Grenze bei _BSD_LINE_MAX + +NetBSD 1993 _POSIX2_LINE_MAX + +NetBSD 2012 dyn alloc + + +4.3BSD-Reno + * set a byte in the positions array to indicate if a field or + * column is to be selected; use +1, it's 1-based, not 0-based. + * This parser is less restrictive than the Draft 9 POSIX spec. + * POSIX doesn't allow lists that aren't in increasing order or + * overlapping lists. We also handle "-3-5" although there's no + * real reason too. + + + Schaut man sich die SCCS-IDs (die vom damaligen Versionskontrollsystem eingefuegt wurden) in den BSD-Quellen an, dann findet man dort Versionsnummern, die die Entwicklung