home *** CD-ROM | disk | FTP | other *** search
- _______________ _____ _____ _________ ___________________
- \. /________ |. /_____:o | /. \/|___/_ \ /
- \___ _____/|. / \|| /|. |: |// ______/·|. / ______ \ ___/
- /. /_/· || / \: \|| |· |/ / \ \/ || /_______ \/+ /
- // ____/ || \ \ \ \: ¯¯¯ | / / / || \ /·\ / \ __/_
- // / // |+ \ \ \ \___/ | \___/ / |· \/ \/ / /
- /· / \\ / \ / |: | / / / /
- \___/ \________/_____|\___/: |_____|_______/\________/_______/______/
- l_____|·MBB·
-
-
- _ ___ \ _
- ___|__________/\______\//\________________________________________________ _
- \___ / ___/ \_____\//\______________ /\ ______/ _______/ ___ _
- | _/ \ _ \_ \/ | ___)_/_ ___/_/_ ___)_\______ \______
- | \ \/ / || | \ | \ | \ / / /
- _ __| \__________/____|| |____ |__ |__ _____/ ___ _
- `----' `-----' `------' `------' `---------' `------'
-
- [hOMELESS÷bBS!]
-
- [bIRDHOUSE^pROJECTS eUROPEAN hQ][mYTH! gERMAN hQ][aRT-cORE! fUN hQ]
-
- [sYSdOODE: -sLIME!^bIRDHOUSE÷pROJECTS-lEADER^mYTH!]
- [cOdOODES: mOGUe!/sCX^aC! pRIMUS!/bP!-lEADER]
- [MR.VAiN/bNZ^aC! wHIRLWIND/mYTH!]
-
- [uPLOADER:GeNeRaTioN ][oF:[+] PRODIGY '95 [+]]
- [uPLOAD tIME:13:51:37][uPLOAD dATE:03-Jan-95]
-
- _ ___ \ _
- ___|__________/\______\//\________________________________________________ _
- \___ / ___/ \_____\//\______________ /\ ______/ _______/ ___ _
- | _/ \ _ \_ \/ | ___)_/_ ___/_/_ ___)_\______ \______
- | \ \/ / || | \ | \ | \ / / /
- _ __| \__________/____|| |____ |__ |__ _____/ ___ _
- `----' `-----' `------' `------' `---------' `------'
-
-
-
-
- «------------------[ eLITE gUYS wILL gET iNVITED hERE ]------------------»
- . . . . : · .
- ____/¦__ ___/¦____ __/¦___________/¦__ ¦ ¦___/¦__ !
- _ ____ \__\____ _// _____\_________ \ | | ____ \__ _:/\__
- /· |____//· | \\_____ ·\| | | \\| |/· |____/ \ Oo /
- // | \ | \ l \\ | | ·\_ // | \ /_--_\
- \__________\________/________/___j___j / \__________\ :\/
- -------------------------------------l____/ :----------- ¡
- · ·
- . : · . . . .
- ! _ ____/¦__ ¦ ¦____¦\____ ____/¦__ ___/¦____ __/¦_____ __
- _:/\__ _ _ ____ \__| |______ \ _ ____ \__\_ | _// _____ __ _
- \ Oo / /· |____/| |/· __ __/ /· |____//· | \\_____ ·\
- /_--_\ // | \| // | \_// | \ l \ l \\
- :\/ \__________\ \____j /\__________\________/________/
- ¡ -----------· :----l____/-------------------------------
- · ·
- <*> pRODIGY gHQ <*> nEUTRON wHQ <*> iLLUSION eHQ <*> dYNAMIX gHQ <*>
-
- Upload Date: [01-03-95] «» Upload Time: [07:18:02]
-
- «-------------------[ aSK eLITE fOR SYS-PW & NUMBA ! ]-------------------»
-
- .__ _ r
- : __tHIS fILE wAS D/L fROM I
- _ _02-Jan-95_________________________: N
- _| \/ | G
- \/ T¾R¾S¾I LEADER H¾Q \\ ² tRISTAR & rED
- \ sECTOR
- ö . |_/\________/\__.___ _/\_______ | W
- /\ |\ ._ \ \ \ ____)² iNC.
- . \/\------------|/ |/____/ \ / __)__!---------------.
- |\/ / ² / | \ \ 4nODEZ |
- | \_____| \_____²_____/___________/ !_
- |ö | | /_/\
- | _/\__.___ !/\_._/\________/\________/\______! _/\______ \_\/
- | \ \ \___!\ ._ \ ._ \ ____) \ . \ |
- 00:10:25 \ / |/ |/ / |/ / __)__ / | \_/¹
- / | \ | / / / / \ | \
- \_____²_____/____²_________/_________/___________/_____²_____/ö2Fö
- ² ²
- _!/\__ |__
- \ Oo / +49 p¾R¾I¾V¾A¾T¾E¾! ___| /
- eLITE gUYS /_--_\ \ //
- wILL gET ²\/ tHE hOLY mASTER iS \/|
- iNVITED hERE ! mClOUD ²
- ² aND hIS hELPING hAND iS mARIO :
- :
- ¾ aSK fOR nUMBER aND sYSPW/nUP
-
-
- @BEGIN_FILE_ID.DIZFREQUENTLY ASKED QUESTIONS ABOUT `C` !
- -German Edition-
- 1-10
- @END_FILE_ID.DIZ
- Und los gehts...
-
-
- C-FAQ v2.0-ALPHA
-
-
- Liste der häufig gestellten Fragen in der C-Gruppe
- (und natürlich die passenden Antworten :-))
-
- Thomas Weidenfeller @ AC2
- (Thomas_Weidenfeller@ac2.maus.de)
- Wolfram Rösler @ AC2 (wr@bara.oche.de)
-
- 17. Dezember 1994
-
-
- Copyright (C) 1993-1994 by
- Wolfram Rösler und
- Thomas Weidenfeller
- Schutzvermerk nach DIN 34 beachten
-
-
- C-FAQ v2.0-ALPHA, Revision 941212,06/Neither
-
- Copyright (C) 1993-1994 by T. Weidenfeller &
- W. Rösler. Alle Rechte vorbehalten.
-
- Hiermit lassen wir die Speicherung oder Verbreitung
- auf elektronischem Weg im Computer-Netz "MausNet" und
- den direkt angeschlossenen nicht-kommerziellen
- Computer-Netzen zu. Ebenso gestatten wir für per-
- sönliche, private, nicht-kommerzielle Zwecke das
- Kopieren/Ausdrucken dieses Textes. Weiterhin ist die
- Verwendung von Ausschnitten aus dieser FAQ im Rahmen
- von Fachdiskussionen innerhalb der oben erwähnten
- Computer-Netze - soweit die Ausschnitte mit einer
- kurzen Quellenangabe gekennzeichnet und nicht sinn-
- entstellend gewählt wurden - zulässig.
-
- Jede andere Verbreitung - auch auszugsweise -,
- insbesondere in gedruckter Form und der Speicherung
- in elektronischen Medien und jegliche kommerzielle
- Nutzung oder Verwertung bedarf unserer vorherigen
- schriftlichen Zustimmung (damit ist z.B. auch die
- Verbreitung und/oder Speicherung in Systemen, die
- Netzen wie dem Borland-Netz oder GerNet angehören,
- nicht zulässig).
-
- Wir haben uns bemüht, daß alle in dieser FAQ
- enthaltenen Informationen korrekt sind. Trotzdem
- können wir Fehler nicht ausschließen. Daher sind alle
- Angaben in dieser FAQ ohne Gewähr.
-
- In diesem Text werden Warennamen besondere
- Kennzeichnung und ohne Gewährleistung der freien
- Verwendbarkeit verwendet.
- Einleitung 1
- ---------------------------------------------------------------
-
-
- Einleitung
-
-
- "Real programmers use 'cat > a.out'"
-
- Ständig wächst die Anzahl der Teilnehmer in den Mailbox-Netzen
- und damit natürlich auch in Anzahl der Teilnehmer an den dort
- vorhandenen Diskussionsgruppen/Areas/Brettern. Das hat zur
- Folge, daß auch die Anzahl der sich wiederholenden Fragen in
- einer Gruppe, auch in der C-Gruppe, größer wird. Da es einer-
- seits ermüdend ist, immer wieder vergleichbare Fragen zu lesen
- und andererseits noch lästiger, immer wieder gleiche (und
- häufig noch falsche) Antworten zu lesen, entstand diese FAQ für
- die C-Gruppe des MausNet.
-
- Natürlich ist dies nicht "die" C-FAQ, sondern wir haben - auf
- die C-Gruppe des MausNet bezogen - zuerst die Fragen
- aufgegriffen, die uns
-
- 1. in letzter Zeit häufiger begegnet sind und
-
- 2. an die wir uns noch sehr gut erinnern können, da wir sie
- oft (Wolfram vielleicht etwas häufiger) beantwortet
- haben.
-
- Ergänzt wurde das Ganze um die Definitionen einiger Begriffe
- und um ein paar allgemeine Hinweise.
-
- Von dieser FAQ gibt es zwei Versionen, eine ASCII-Version
- (genauer, eine Version die den PC-Zeichensatz "Codepage 437"
- benutzt) und eine Postscript-Version. Die ASCII-Version war
- eigentlich nur als Notlösung geplant, daher ist sie nicht
- sonderlich sauber formatiert. Die Postscript-Version sieht
- wesentlich besser aus. Da sie aus sehr kompaktem Postscript-
- Code besteht, sollte man ihr den Vorzug geben.
-
- Sicher enthält diese FAQ ein paar kleinere Fehler. Für Hinweise
- darauf und für Verbesserungsvorschläge sind wir immer dankbar,
- solange sie sachlich gehalten sind. Allerdings gibt es ein paar
- Punkte, über die wir nicht mit uns diskutieren lassen, z.B.
- über den Rückgabetyp von main() :-).
-
- Alle Antworten sind am Ende mit den Initialen des
- entsprechenden Autors gekennzeichnet. Dieser ist naturgemäß der
- entsprechende Ansprechpartner für Verbesserungsvorschläge. (tw)
- 2 Einleitung
- ---------------------------------------------------------------
- Begriffe 3
- ---------------------------------------------------------------
-
-
- Kapitel 1
-
- Begriffe
-
-
- Viele Fragen entstehen alleine aus der Unkenntnis häufig ver-
- wendeter Begriffe. Wir haben im folgenden einige zusammenge-
- faßt. (tw)
-
-
- Q1.1 Was ist der ANSI C Standard? Was ist ANSI C?
-
-
- ANSI ist das 'American National Standards Institute'. Ausgehend
- von 'Kernighan und Ritchie' C begann der formale ANSI-Stan-
- dardisierungsprozeß im Sommer 1983, als das ANSI Komitee X3J11
- 1
- seine Arbeit aufnahm. Deren C-Standard "ANSI X3.159-1989"
- wurde im Dezember 1989 formal (für die USA) gültig. 1990 wurde
- dieser Standard 'internationalisiert' und zu einer ISO-Norm
- 2
- (ISO 9899 ). Der '90er Standard ersetzt auch in den USA den
- alten "X3.159-1989"-Standard, so daß heute ANSI C (ANSI/ISO
- 9899-1990) gleich ISO C ist ([Schi 93], [Ratio]).
-
- Damit ist die Standardisierung von C nicht abgeschlossen. Ein
- sog. "Normativ Addendum" (NA) - sprich, eine Zusatz - ist auf
- dem Weg. Dieser befaßt sich hauptsächlich mit den im ANSI-
- Standard nur unvollständig normierten "Wide Characters" für
- Zeichensätze mit mehr als acht Bit.
-
- Erwähnenswert ist noch das C++ Standardkomitee X3J16. Dort wird
- an ANSI C++ gearbeitet, was früher oder später weiteren Einfluß
- auf das "normale" C haben wird. C++ hat bereits in der
- Vergangenheit ANSI C beeinflußt, so stammen z.B. die C-
- Prototypen aus C++. Umgekehrt wurde C++ natürlich auch von
- ANSI C beeinflußt. (tw)
-
-
- Q1.2 Was ist 'Kernighan und Ritchie C'? Was ist K&R C? Was
- K&R, K&R2?
-
-
- Dennis Ritchie entwickelte in den 70er Jahren C. Die Sprache
- wurde 1978 in einem Buch von Brian Kernighan und Dennis Ritchie
- beschrieben [K&R 78] (deutsche Übersetzung 1983, [K&R 83d]).
- _____________
-
- 1. Häufig wird dieser Standard statt "X3.159-1989" auch "X3J11"
- genannt, obwohl dies eigentlich der Komiteename ist.
-
- 2. Auch "ISO/IEC 9899-1990"...
- 4 Begriffe
- ---------------------------------------------------------------
-
-
- Dieses Buch wird - nach den Anfangsbuchstaben der Nachnamen der
- Autoren - DER "K&R" genannt. C entsprechend diesem Buch wird
- K&R C genannt.
-
- Eine zweite, wesentlich spätere Version des Buches behandelt
- ANSI C ([K&R II 88], [K&R II 90d]). Dieses Buch wird
- gelegentlich "K&R 2" oder "K&R II" genannt. C entsprechend
- dieser zweiten Version ist ANSI C, nicht K&R C! Im Gegensatz
- zum K&R ist der "K&R 2" einfach ein Buch über ANSI C, aber
- nicht die ultimative Definition von ANSI C. (tw)
-
-
- Q1.3 Was ist die Rationale?
-
-
- Ein ca. 120 Seiten langer Text (vom ANSI-Komitee herausgege-
- ben), der die Begründungen für die Entscheidungen des Komitees
- enthält. Obwohl die Rationale kein Bestandteil des Standards
- (im Sinne der international verbindlichen Normung) ist, ist sie
- sehr hilfreich, wenn es darum geht, ANSI C zu verstehen
- ([Ratio]).
-
- Im Gegensatz zu dem Standard selber, der von ANSI verkauft
- wird, ist die Rationale Public Domain. Daher ist es für jeden
- C-Programmierer kein Problem, sich die Rationale in den Schrank
- oder auf die Festplatte zu legen (siehe auch Q9.2). Wer's nicht
- macht, ist selber schuld. (wr)
-
-
- Q1.4 Was ist POSIX?
-
-
- POSIX (Portable Operating System Interface for Computer
- Environments) ist ein ursprünglich vom IEEE (Institute of
- Electrical and Electronics Engineers) definierter Satz von
- Standards.
-
- Für die C-Programmierung ist insbesondere POSIX.1 interessant.
- Dieser Standard definiert C-Schnittstellen zum Betriebssystem.
- Viele der dort definierten Funktionsaufrufe sind nicht im im
- ANSI-C Standard enthalten, jedoch lassen sich reale
- Anwender(!)-Programme kaum ohne die entsprechenden
- Funktionalitäten entwickeln. So finden sich in POSIX.1 z.B.
- standardisierte Funktionen zum Einlesen von Datei-
- verzeichnissen.
-
- Da das ANSI-Komitee C absolut universell definieren mußte, z.B.
- auch für die Verwendung in interaktionslosen microcontroller-
- basierenden Systeme ohne Dateisystem o.ä., können solche
- Funktionen nicht im ANSI-Standard enthalten sein. Jedoch sind
- POSIX.1 und ANSI C aufeinander abgestimmt. Für die Standard-
- 3
- Bibliothek von ANSI C wurde der 1984er "/usr/group"-Standard
- für Unix als Basis gewählt, wobei alle Unix-Spezifika
- eliminiert wurden. Die Arbeit von "/usr/group" wurde später von
- _____________
-
- 3. "/usr/group" ist eine Vereinigung von Unix-Benutzern.
- Begriffe 5
- ---------------------------------------------------------------
-
-
- der Arbeitsgruppe 1003 des IEEE unter dem Begriff "POSIX"
- weitergeführt. Das ANSI-Komitee X3J11 und IEEE 1003 haben sich
- abgestimmt, die Verantwortung für die Standardisierung von
- Funktionen wurde damals wie folgt aufgeteilt ([Ratio]):
-
- ANSI Betriebssystem-unabhängige C-Funktionen, die in jeder
- Umgebung benötigt werden.
-
- IEEE Betriebssystem-nahe Funktionen, ansonsten wird auf den
- ANSI-Standard verwiesen.
-
- Ursprünglich basiert POSIX auf dem Unix-Betriebssystem
- ("/usr/group"-Standard), ist jedoch nicht mehr auf Unix oder
- Unix-ähnliche Systeme beschränkt. Viele Hersteller völlig
- anders gearteter Systeme halten sich auch an POSIX, nicht
- zuletzt deshalb, da die US-Regierung bei von ihr gekauften
- Rechner besonderen Wert auf eine bestimmte POSIX-Variante legt.
-
- Und damit sind wir auch beim Namensdurcheinander von POSIX. Man
- findet:
-
- IEEE Std. 1003.1-1988 Der ursprüngliche Standard von 1988.
-
- IEEE Std. 1003.1-1990 Eine textuell überarbeitete Version von
- 1990.
-
- ISO/IEC 9945-1:1990 Die von ISO übernommene '90er IEEE-
- Version. Dieser ISO-Standard wird
- allgemein als POSIX.1 bezeichnet.
-
- IEEE 1003.1a Änderungen, die als Anhang zu "IEEE Std.
- 1003.1-1990" veröffentlicht werden
- sollen.
-
- FIPS 151-1 Eine verfeinerte Version von "IEEE Std.
- 1003.1-1988" der US-Regierung (FIPS
- steht für Federal Information Processing
- Standard).
-
- Hinzu kommen noch die anderen Komponenten von POSIX; es gibt
- über 15 Unterkomitees in der 1003-Arbeitsgruppe des IEEE. (tw)
-
-
- Q1.5 Was ist ein Reiser-Preprozessor?
-
-
- Gelegentlich wird der Preprozessor eines C-Compilers Reiser-
- Preprozessor genannt. Beim Name 'Reiser' soll es sich um den
- Namen des Programmierers handeln, der vor ewig und drei Tagen
- den Original-Preprozessor für den ursprünglichen K&R C-Compiler
- unter Unix geschrieben hat. Mit einem Reiser-Preprozessor be-
- zeichnet man heute jeden Preprozessor, der sich so wie dieser
- Original-Preprozessor verhält.
-
- Ein Reiser-Preprozessor ist der übliche Preprozessor für K&R-
- Compiler, sein Verhalten ist zum Teil im K&R beschrieben. Ein
- ANSI-Preprozessor verhält sich etwas anders (siehe QQ2.1) und
- gehört naturgemäß zu einem ANSI C-Compiler. Leider findet man
- 6 Begriffe
- ---------------------------------------------------------------
-
-
- gelegentlich andere Kombinationen. So enthielt COHERENT 3.0.0
- zwar einen ANSI-Preprozessor, aber nur einen K&R C-Compiler.
- Eine heikle und nicht zu empfehlende Mischung... (tw)
-
- /Ende von Teil 1/
-
- Keep hacking
- Wolfram
-
-
-
-
- «------------------[ eLITE gUYS wILL gET iNVITED hERE ]------------------»
- . . . . : · .
- ____/¦__ ___/¦____ __/¦___________/¦__ ¦ ¦___/¦__ !
- _ ____ \__\____ _// _____\_________ \ | | ____ \__ _:/\__
- /· |____//· | \\_____ ·\| | | \\| |/· |____/ \ Oo /
- // | \ | \ l \\ | | ·\_ // | \ /_--_\
- \__________\________/________/___j___j / \__________\ :\/
- -------------------------------------l____/ :----------- ¡
- · ·
- . : · . . . .
- ! _ ____/¦__ ¦ ¦____¦\____ ____/¦__ ___/¦____ __/¦_____ __
- _:/\__ _ _ ____ \__| |______ \ _ ____ \__\_ | _// _____ __ _
- \ Oo / /· |____/| |/· __ __/ /· |____//· | \\_____ ·\
- /_--_\ // | \| // | \_// | \ l \ l \\
- :\/ \__________\ \____j /\__________\________/________/
- ¡ -----------· :----l____/-------------------------------
- · ·
- <*> pRODIGY gHQ <*> nEUTRON wHQ <*> iLLUSION eHQ <*> dYNAMIX gHQ <*>
-
- Upload Date: [01-03-95] «» Upload Time: [07:18:02]
-
- «-------------------[ aSK eLITE fOR SYS-PW & NUMBA ! ]-------------------»
-
- [-AquaAdder v1.0-]
-
-
-
-
-
-
- -sLiME!^bP·LEADER^mTH!
- mOGUe!^aC! pRIMUS!/bP·lEADER
- wHIRLWIND/mTH! MR.VAIN/BNZ^sXi^aC!
-
- -- --- ---- pHUKKIN' fAST aMIGA ^ wORLD'S lARGEST cHIPTUNE aREA ---- --- --
- ____
- ___| |_____________ __________________ ____________________________
- _/ _| | ._________\/__________ \ _/___\______ \ _____/ _____/
- \ \. | l/ / \/ | _____/_ l / _____/\____ _/\____ \_
- \___| |________/____||-Mo!|________________/_______\ _______\ ________/
- l____| l____| \/ \/
-
- -- --- ---- aMI-eX fREE-lEECH ^ bIG aSCII bASE © bY aC! ---- --- --
-
- -- mYTH! gHQ - -÷- - bIRDHOUSE pROJECTS! eHQ - -÷- - aRT-cORE! eHQ --
-
- _______________ _____ _____ _________ ___________________
- \. /________ |. /_____:o | /. \/|___/_ \ /
- \___ _____/|. / \|| /|. |: |// ______/·|. / ______ \ ___/
- /. /_/· || / \: \|| |· |/ / \ \/ || /_______ \/+ /
- // ____/ || \ \ \ \: ¯¯¯ | / / / || \ /·\ / \ __/_
- // / // |+ \ \ \ \___/ | \___/ / |· \/ \/ / /
- /· / \\ / \ / |: | / / / /
- \___/ \________/_____|\___/: |_____|_______/\________/_______/______/
- l_____|·MBB·
-
-