Inhaltsverzeichnis Ubersetzung und Pr aprozessor
|
|
- Horst Sternberg
- vor 7 Jahren
- Abrufe
Transkript
1 Inhaltsverzeichnis 4 Übersetzung und Präprozessor Phasen der Übersetzung Die Präprozessorphase Die Kompilierungsphase Die Linkerphase gcc Alle Phasen in einem Durchgang Erzeugen einer.o-datei Angeben von Bibliotheken Die Arbeitsweise des Präprozessors include-direktive und Header-Dateien #include <datei.h> #include datei.h define-direktive, symbolische Konstanten und Makros Symbolische Konstanten Makros Makro-Operatoren Löschen eines Namens Hinweise zum Gebrauch von Namen Vorbesetzte Namen Bedingte Kompilierung Bedingte Kompilierung in Header-Dateien Bedingte Kompilierung für rechnerabhängige Besonderheiten
2 Kapitel 4 Übersetzung und Präprozessor Dieses Kapitel enthält zunächst eine Übersicht der Übersetzungsphasen eines C-Programms. Bestimmte technische Details des Übersetzungsvorgangs sind in verschiedenen Betriebssystemen und verschiedenen Compilern unterschiedlich. Daher beschränkt sich die Darstellung der Übersetzungsphasen auf allgemeine Angaben. Als Beispiele werden gcc- Aufrufe unter UNIX genommen. Das Hauptthema dieses Kapitels ist dann die Beschreibung der ersten Übersetzungsphase: des Präprozessorlaufs. 4.1 Phasen der Übersetzung Ein C-Programm durchläuft von der Erstellung der Textdatei bis zum lauffähigen Programm mehrere Phasen, an denen mehrere Zwischen- und Ergebnisdateien beteiligt sind. Der Benutzer nimmt auf diese Phasen in verschiedener Weise Einfluß, teils in seiner Textdatei, teils durch Optionen beim Aufruf des Compilers: Phase Eingabedateien Produktion Ausgabedatei Präprozessor.c- und.h-dateien expandierter Text interne Datei Compiler interne Datei maschinennaher Code.o-Datei Linker.o-Datei lauffähiges Programm Programmdatei Die Präprozessorphase Der Präprozessor nimmt im Programmtext bestimmte Textersetzungen vor und erstellt als Ausgabe eine (normalerweise unsichtbare ) Textdatei, die wiederum ein C-Programm ist. Der Benutzer sorgt in seinem C-Text durch bestimmte Angaben dafür, daß der Präprozessor solche Ersetzungen vornimmt. 2
3 C-Kurs (ZDV) Übersetzung und Präprozessor Die Kompilierungsphase Der Compiler übersetzt die vom Präprozessor gelieferte Datei in maschinennahe Sprache und legt diesen Code in einer Datei mit dem Suffix.o ab. Der Benutzer kann die Arbeitsweise des Compilers durch eine Vielzahl von Optionen beeinflussen Die Linkerphase Der Linker verbindet eine oder mehrere.o-dateien mit Bibliotheksfunktionen zu einem lauffähigen Programm. Der Linker kennt bereits einige Standardbibliotheken. Zusätzliche Bibliotheken müssen ihm vom Benutzer als Option angegeben werden. 4.2 gcc Im gcc-kommando sind Präprozessor, Compiler und Linker integriert. gcc verfügt über eine Vielzahl von Optionen für alle Phasen der Übersetzung. Diese sollten bei Bedarf im gcc-manual nachgelesen werden. Der Aufruf des UNIX-Kommandos man gcc bietet eine Zusammenfassung. Im folgenden werden nur einige wenige gcc-optionen beschrieben. Weitere gcc-optionen für den Präprozessor befinden sich weiter hinten im Kapitel Alle Phasen in einem Durchgang Für kleine Programme ist folgender Aufruf typisch: gcc -o hallo hallo.c In der Option -o wird der Name des lauffähigen Programms, also des Linkeroutputs, angegeben. Dahinter folgt der Name der C-Datei. Besteht das Programm aus mehreren Modulen, können diese alle angegeben werden: gcc -o super haupt.c sub1.c sub2.c Sowohl die Zwischendatei des Präprozessors als auch die.o-datei des Compilers werden temporär gehalten, d.h. nicht auf der Platte abgelegt.
4 C-Kurs (ZDV) Übersetzung und Präprozessor Erzeugen einer.o-datei Bei umfangreicheren Programmen will man ev. einzelne Module vorübersetzen. Dann wird zunächst nur die.o-datei erzeugt, die, bis auf den Suffix, genauso heißt wie die.c-datei: gcc -c haupt.c Zum Linken wird jetzt die.o-datei angegeben. Dies kann kombiniert werden mit einer.c-datei: gcc -o super haupt.o sub1.c sub2.c Der Vorteil liegt darin, daß haupt.c nicht neu übersetzt wird Angeben von Bibliotheken Header-Datei und Bibliothek arbeiten zwar Hand in Hand, dürfen aber nicht miteinander verwechselt werden. Um etwa die Funktion sqrt zu benutzen, benötigt der Compiler zunächst die Header- Datei math.h, um die Deklaration der Funktion zu erfahren (Anzahl und Typ der Parameter etc.). Der Code der Funktion jedoch steht in einer Bibliothek, die nicht zu den Standardbibliotheken von gcc gehört. Diese Bibliothek heißt m. m wird mit der Option -l angegeben: gcc -o tab tabelle.c -lm Immerhin weiß der Linker, in welcher Directory m zu finden ist. Hat ein Benutzer eine eigene Funktionenbibliothek, so muß er auch noch angeben, in welcher Directory der Linker suchen muß. Das geschieht mit der Option -L: gcc -o haudrauf hau.c drauf.c -L /privlib -lm -lbrutal Die Benutzerbibliothek brutal soll in der Directory privlib gesucht werden. 4.3 Die Arbeitsweise des Präprozessors Der Präprozessor wird als erste Phase der Übersetzung eines C-Programms durchlaufen. Der Präprozessor sucht im Programmtext nach Zeilen, die mit einem # beginnen und interpretiert diese Zeilen als Präprozessor-Direktiven.
5 C-Kurs (ZDV) Übersetzung und Präprozessor 4-5 Die Durchführung bewirkt, daß der ursprüngliche Programmtext verändert wird. Am Ende der Präprozessorphase ist ein neues C-Programm entstanden, das jetzt als Eingabe für den Compiler dient. Der Präprozessor versteht nichts von C-Syntax, er ist auf reine Textersetzung spezialisiert. Durch falsche Anwendung von Direktiven können im resultierenden C-Programm durchaus syntaktische oder semantische Fehler entstehen, die man nicht ohne weiteres erkennt, weil man den Präprozessoroutput normalerweise nicht zu Gesicht bekommt. Wenn man das Ergebnis des Präprozessors sehen will, gibt man in gcc die Option -E an. Dann wird nur die Präpozessorphase durchlaufen und das Ergebnis wird in die Standardausabe geschrieben. Diese sollte man zweckmäßigerweise in eine Datei umlenken: gcc -c hallo.c -E >out out kann jetzt z.b. mit more gelesen werden. 4.4 include-direktive und Header-Dateien Zeilen der Art: #include <datei.h> #include "datei.h" veranlassen den Präprozessor, den Inhalt der Datei datei.h an die Stelle dieser Direktive zu setzen. Eine solche Datei wird Header-Datei oder Include-Datei genannt. Der Suffix.h ist nicht vorgeschrieben, stellt aber eine Konvention dar, die von allen offiziellen Header- Dateien eingehalten wird. Header-Dateien enthalten einfach nur Text, der vom C-Compiler verstanden werden muß. Im Normalfall beschränkt sich eine Header-Datei auf Definitionen und Deklarationen. Der Compiler hat eine Liste von Directories, in denen Header-Dateien gesucht werden, und die Begrenzer der Dateiangabe (<...>,... ) bestimmen, welche dieser Directories wirklich durchsucht werden #include <datei.h> Die Begrenzer <...>, bedeuten, daß die vom System vorgegebenen Directories nach der angegebenen Header-Datei durchsucht werden. In UNIX sind das für gcc: /usr/include, /usr/local/include
6 C-Kurs (ZDV) Übersetzung und Präprozessor 4-6 Hinzu kommen Directories, die je nach Betriebssystem und Rechnerarchitektur verschieden sein können. Die systemeigenen Header-Dateien können ohne weiteres gelesen werden, und es lohnt sich, dieses gelegentlich zu tun, z.b.: more /usr/include/stdio.h Um zu erfahren, aus welchen Directories die Header-Dateien genommen wurden, kann man im gcc-kommando die Option -H angeben: gcc -H -o hallo hallo.c #include datei.h Die Begrenzer... bewirken, daß die Header-Datei zunächst in benutzerdefinierten Directories gesucht werden. Werden die Dateien dort nicht gefunden, so wird die Suche mit den systemeigenenen Directories fortgesetzt. Benutzereigene Directories sind: die working directory Directories, die beim gcc-kommando in der Option -I angegeben wurden. Im folgenden Programmkopf werden drei systemeigene Header-Dateien und eine benutzereigene Header-Datei geladen: #include <stdio.h> #include <stdlib.h> #include <string.h> #include "privat.h" Falls das gcc-kommando so aufgerufen wurde: gcc -o super super.c -I /eigen -I /geheim so wird die Header-Datei privat.h zunächst in der Directory eigen, dann in geheim und schließlich in den systemeigenen Directories gesucht.
7 C-Kurs (ZDV) Übersetzung und Präprozessor define-direktive, symbolische Konstanten und Makros Mit #define werden Namen definiert, denen Textstrings als Werte zugeordnet werden. Erscheint ein solcher Name im weiteren Verlauf des Programmtextes, so wird er vom Präprozessor durch seinen zugeordneten Textstring ersetzt. Ein Name wird syntaktisch gebildet wie ein Name in C, also aus Buchstaben, Ziffern und Underline. Der Name darf nicht mit einer Ziffer beginnen. Namen dürfen parametrisiert sein. Entsprechend unterscheidet man: Unparametrisierte Namen, auch symbolische Konstanten genannt. Parametrisierte Namen, auch Makros genannt Symbolische Konstanten Eine symbolische Konstante wird in der Form definiert: #define name text Symbolische Konstanten werden häufig benutzt, um konstante Werte oder auch kurze Programmteile in den Kopf eines Programms zu schreiben. Konventionellerweise schreibt man solche Namen groß, um sie im Programm besser unterscheiden zu können. Dazu folgendes Programmbeispiel: #include <stdio.h> #include <stdlib.h> #define MIN -3 #define MAX 100 #define WARTE sleep(3) #define NULLDIV "Programmfehler: Division durch 0!" #define FORMAT "%3d %f\n" main () { int i; for (i = MIN; i <= MAX; i++) { if (i == 0) puts(nulldiv); else printf(format, i, 1./i); } } WARTE;
8 C-Kurs (ZDV) Übersetzung und Präprozessor 4-8 Durch Ersetzung entsteht also folgender Text: main () { int i; for (i = -3; i <= 100; i++) { if (i == 0) puts("programmfehler: Division durch 0!"); else printf("%3d %f\n", i, 1./i); } } sleep(3); Die folgende Ersetzung erzeugt einen Fehler: #define WERT 17,5 main() { double x = WERT; }... Das merkt aber erst der Compiler. Ist der Ersetzungstext zu lang für eine Zeile, so kann er auf der nächsten Zeile fortgesetzt werden, wenn die Zeile mit Backslash beendet wird: #define DELAY {int i, j; for (i = 1; i < ; i++)\ j = i*i/i;} Makros Namen mit Parametern haben die Form #define name(p1,..., pn) text Die Auswertung eines Makroaufrufs geht folgendermaßen vor sich: Enthalten die Argumente des Makroaufrufs selbst Makros, so werden diese ersetzt. Die so entstandenen Argumente werden im Ersetzungstext überall dort eingesetzt, wo sich entsprechende Makroparameter befinden.
9 C-Kurs (ZDV) Übersetzung und Präprozessor 4-9 Der so entstandene Ersetzungstext wird für den Makroaufruf eingesetzt. Beispiel: #define HOCH2(a) #define BIN3(a, b) a*a (a+b)(a-b) x = HOCH2(2); /* x = 2*2; */ y = BIN3(1, 2); /* y = (1+2)(1-2); */ z = BIN3(HOCH2(2), 3); /* z = (2*2+3)(2*2-3); */ Makro-Operatoren Für die Behandlung von Parametern in Ersetzungstexten stehen die Operatoren # und ## zur Verfügung. #p setzt im Ersetzungstext das Argument, das für p eingesetzt wird, in Anführungsstriche, z.b.: #define NAME(n) #n puts(name(hugo)); /* puts("hugo"); */ p1##p2 verkettet im Ersetzungstext die beiden Argumente, die für p1 und p2 eingesetzt werden, z.b.: #define CAT(a, b) a##b x = CAT(sq, rt)(2); /* x = sqrt(2);*/ Löschen eines Namens Durch #undef name wird ein Name (symbolische Konstante oder Makro) wieder gelöscht, d.h. es kann anschließend nicht mehr benutzt, aber neu definiert werden. Existierte name nicht, so gibt der Präprozessor keine Fehlermeldung aus.
10 C-Kurs (ZDV) Übersetzung und Präprozessor Hinweise zum Gebrauch von Namen Beim Einsatz von Namen ist zu beachten: Ungeklammerte Zahlenausdrücke können zu semantischen Irrtümern führen: #define SUM1 3+4 #define SUM2 (3+4) printf("%d %d %d\n", SUM1*SUM1, (SUM1)*(SUM1), SUM2*SUM2); Das wird ersetzt zu: printf("%d %d %d\n", 3+4*3+4, (3+4)*(3+4), (3+4)*(3+4)); Stimmen zwei Namen so überein, daß der eine im anderen enthalten ist, so wählt der Präprozessor den längeren: #define A 1 #define B 2 #define AB 3 n = AB; /* n = 3; */ Sind zwei Namen gleich, so müssen auch ihre Ersetzungstexte gleich sein, sonst gibt der Compiler eine Warnung aus. Auf diese Weise wird vermieden, aus Versehen einen Namen zu redefinieren, der bereits in einer Header-Datei verwendet wurde. Z.B. ist in stdio.h definiert: #define BUFSIZ 8192 Daher ergibt folgende Definition eine Warnung: #include <stdio.h> #define BUFSIZ 100
11 C-Kurs (ZDV) Übersetzung und Präprozessor Vorbesetzte Namen Folgende Namen stehen mit vordefinierten Werten zur Verfügung: LINE Nummer der aktuellen Programmzeile. FILE Name der Datei, die gerade übersetzt wird. DATE Datum der Übersetzung in der Form mm dd yyyy. TIME Zeit der Übersetzung in der Form hh:mm:ss. STDC hat den Wert 1, wenn der Compiler ANSI-C entspricht, sonst 0. Z.B. ergibt die Anweisung printf("%d %s %s %s %d\n", LINE, FILE, DATE, TIME, STDC ); die Ausgabe 25 makros.c May :27: Bedingte Kompilierung Der Präprozessor kann mit Hilfe logischer Ausdrücke dazu veranlaßt werden, bestimmte Programmteile auszuwählen oder zu unterdrücken. Auf diese Art kann man z.b. C-Programme schreiben, die implementationsabhängige Besonderheiten berücksichtigen. Eine bedingte Auswahl mit mehreren Alternativen sieht formal so aus: #if ausdruck1 programmteil1 #elif ausdruck2 programmteil2... #else programmteiln #endif
12 C-Kurs (ZDV) Übersetzung und Präprozessor 4-12 Die #elifs und das #else können natürlich entfallen, das #endif jedoch muß immer da sein. ausdruckn wird als logische Bedingung betrachtet. Es sind folgende Ausdrücke möglich: #if zahl zahl ist ein konstanter Integerausdruck. Ergibt er einen Wert ungleich 0, so ist die logische Bedingung erfüllt. #if defined(name) oder #ifdef name Ist der Name name mit #define definiert worden, so ist die logische Bedingung erfüllt. #if! defined(name) oder #ifndef makro Ist der Name name nicht definiert, so ist die logische Bedingung erfüllt Bedingte Kompilierung in Header-Dateien Bedingte Kompilierung wird in Header Dateien verwendet, um zu vermeiden, daß sie mehr als einmal dazugeladen wird: #ifndef Name_h #define Name_h... #endif Für Name wird der Name der Header-Datei eingesetzt Bedingte Kompilierung für rechnerabhängige Besonderheiten Bedingte Kompilierung wird oft in einem Programm eingesetzt, das portabel sein soll, d.h. auf verschiedenen Rechnern oder unter verschiedenen Betriebssystemen laufen soll. Dazu das folgende Beispiel: Im UNIX-Cluster des ZDV werden Rechner unterschiedlicher Architekturen benutzt. Die Rechnerarchitektur wird in der UNIX-Variablen ARCH gehalten. gcc ist mit Hilfe der Option -D in der Lage, dem Präprozessor Namen zu übergeben, so als wären sie im Programm folgendermaßen definiert: #define name 1 Ist portabel.c ein Programm, das auf verschiedene Rechnerarchitekturen Rücksicht nehmen muß, so kann gcc nun so aufgerufen werden:
13 C-Kurs (ZDV) Übersetzung und Präprozessor 4-13 gcc -c portabel.c -D$ARCH portabel.c enthält dann folgende Präprozessorstrukturen: #if DECMIPS /*oder #ifdef DECMIPS*/... #elif ALPHA... #else... #endif
C - PRÄPROZESSOR. Seminar effiziente C Programmierung WS 2012/13. Von Christian Peter
C - PRÄPROZESSOR Seminar effiziente C Programmierung WS 2012/13 Von Christian Peter Themen Was sind Präprozessoren? Beispiele für Präprozessoren Funktionsweisen Der C - Präprozessor Der # Präfix #include
MehrFACHHOCHSCHULE MANNHEIM
für Java-Programmierer Der Präprozessor Prof. Dr. Wolfgang Schramm FACHHOCHSCHULE MANNHEIM Hochschule für Technik und Gestaltung Präprozessor Ist dem Compiler vorgeschaltet ( Prä -). Spezielle Anweisungen
MehrC++ - Einführung in die Programmiersprache Header-Dateien und Funktionen. Leibniz Universität IT Services Anja Aue
C++ - Einführung in die Programmiersprache Header-Dateien und Funktionen Leibniz Universität IT Services Anja Aue Modularisierung Logische Gliederung von Programmteilen mit Hilfe von Namensräumen. Aufteilung
MehrPräprozessor und make. einfache Makros Makros nehmen eine Textersetzung vor. Erst nach der Ersetzung muss gültiger C-Code vorliegen.
Bevor der eigentliche Kompilier-Vorgang stattfindet, wird vom sogenannten eine Vorverarbeitung durchgeführt. Hierbei werden zum Beispiel Kommentare entfernt, aber auch explizite Anweisungen an den verarbeitet.
MehrProgrammierung mit C Modularisierung von Programmen. Präprozessor-Anweisungen nutzen.
Programmierung mit C Modularisierung von Programmen. Präprozessor-Anweisungen nutzen. Modularisierung Zerlegung eines Programms in überschaubare Einheiten Die einzelnen Einheiten werden als Modul bezeichnet.
MehrCompiler und Präprozessor (1) Erstellen eines Projektes
Compiler und Präprozessor (1) Erstellen eines Projektes Projekte bestehen meist aus mehreren Dateien, z.b. Quelldateien, Funktionssammlungen in Bibliotheken Zur Definition eines Projektes sind folgende
Mehr8.1 Vom Quellcode zur ausführbaren Programm
8. Die Umgebung von C- 8.1 Vom Quellcode zur Programmausführung 8.2 Präprozessor-Anweisungen 8.3 Compiler, Assembler, Binder 8.4 Das Make-Utility 8.5 Datenübergabe vom und zum Betriebssystem 8-1 8.1 Vom
MehrCompiler Präprozessor Header Files
Freitagsrunde C-Kurs 2013 Compiler Präprozessor Header Files Tutorium 3 This work is licensed under a Creative Commons Attribution NonCommercial ShareAlike 3.0 License Gliederung Compiler Präprozessor
MehrC/C++ Programmierung
1 C/C++ Programmierung Grundlagen: Der Präprozessor Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Der Präprozessor
MehrVorlesung Informatik I
Vorlesung Informatik I Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 11. Programmieren in C Der Compilierungsprozess 1 Aufbau eines C-Programms 1. Direktiven
MehrGrundlagen der Programmiersprache C für Studierende der Naturwissenschaften
Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Teil 10: Präprozessor, Header und Bibliotheken Martin Nolte Abteilung für Angewandte Mathematik Universität Freiburg i. Br. Vorlesung
MehrVorlesung Informatik I
Vorlesung Informatik I Universität Augsburg Wintersemester 2010/2011 Prof. Dr. Robert Lorenz Lehrprofessur für Informatik Programmieren in C Der Compilierungsprozess 1 Aufbau eines C-Programms 1. Direktiven
MehrDer C-Präprozessor. Lukas Stabe
Der C-Präprozessor Lukas Stabe Inhaltsverzeichnis 1 Einleitung 1 2 Makros 1 2.1 Parameterlose............................ 1 2.2 Parameterbehaftete......................... 3 2.3 Verbreitete Fehler..........................
MehrBeispiel. Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio)
Beispiel Beispiel: Namensliste konvertieren (Karl Egon Meier Meier, Karl Egon). s/(.*) (.*)/$2, $1/; Problem: mehrteilige Nachnamen (von Goethe, Mac Donald, Di Caprio) s/(.*) (.*)/$2, $1/; s/(.*) ([a-z]+
MehrGrundlagen der Informatik Vorlesungsskript
Grundlagen der Informatik Vorlesungsskript Prof. Dr. T. Gervens, Prof. Dr.-Ing. B. Lang, Prof. Dr. F.M. Thiesing, Prof. Dr.-Ing. C. Westerkamp 16 AUTOMATISCHES ÜBERSETZEN VON PROGRAMMEN MIT MAKE... 2 16.1
MehrEinführung Makros Includes Errors und Warnings Pragmas Diverses. Der C-Präprozessor. Lukas Stabe. Universität Hamburg
Der C-Präprozessor Lukas Stabe Universität Hamburg Proseminar C - Grundlagen und Konzepte, 2013 Lukas Stabe C-Präprozessor 1 / 19 Inhalt 1. Einführung 2. Makros 3. Includes 4. Errors und Warnings 5. Pragmas
MehrProgrammieren in C. Macros, Funktionen und modulare Programmstruktur. Prof. Dr. Nikolaus Wulff
Programmieren in C Macros, Funktionen und modulare Programmstruktur Prof. Dr. Nikolaus Wulff Der C Präprozessor Vor einem Compile Lauf werden alle Präprozessor Kommandos/Makros ausgewertet. Diese sind
MehrInhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15
Vorwort... 15 1 Einstieg in die Welt von C 17 1.1 Die Sprache C... 17 1.2 Die C-Standardbibliothek... 18 1.3 Die nötigen Werkzeuge für C... 21 1.4 Übersetzen mit der Entwicklungsumgebung... 23 1.5 Übersetzen
MehrModellierung und Programmierung
Modellierung und Programmierung Dr. Martin Riplinger 16.1.2013 IAM Institut für Angewandte Mathematik C-Präprozessor: Einfügungen Standard-Header #include Fügt den Text der Headerdatei
MehrAllgemeines. Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C. #include <stdio.h>
Allgemeines Verschiedene Sprachkonzepte C-Sprachfamilie C-ähnliche Programmiersprachen Allgemeines zu C #include int main() { printf( hello world\n ); return 0; } Peter Sobe 1 Verschiedene Sprachkonzepte
MehrJavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.
JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung
MehrObjektorientierung: Klassen und Objekte
Objektorientierung: Klassen und Objekte Klasse: Beschreibung für eine Menge von Objekten Schablone, Bauplan abstrakte Form Objekt: Instanz einer Klasse konkreter Inhalt (Werte) Klassen bestehen aus Attributen
MehrEine Mini-Shell als Literate Program
Eine Mini-Shell als Literate Program Hans-Georg Eßer 16.10.2013 Inhaltsverzeichnis 1 Eine Mini-Shell 1 1.1 Einen Befehl parsen......................... 2 1.2 Was tun mit dem Kommando?...................
MehrPropädeutikum. Dipl.-Inf. Frank Güttler
Propädeutikum 2015 Vorbereitungskurs Informatikstudium Erfolgreich Studieren Programmieren (C-Kurs) guettler@informatik.uni-leipzig.de Universität Leipzig Institut für Informatik Technische Informatik
MehrProgrammiersprachen Einführung in C
Programmiersprachen Einführung in C 14 Vertiefung einiger Themen Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen in
MehrBerichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung
Berichte aus der Informatik Dieter Pawelczak Start in die C-Programmierung Shaker Verlag Aachen 2012 Inhaltsverzeichnis Inhaltsverzeichnis i 1 Einleitung 1 1.1 Umfeld und Aufbau des Buches 1 Die Programmiersprache
MehrAlgorithmus: Kochrezept
Algorithmus: Kochrezept Ziel: Menü mit drei Gängen für 4 Personen Grundlegende Spezifikation: 1. Vorspeise: Badische Flädlesuppe 2. Hauptgericht: Überbackene Schinkenröllchen mit Spargel 3. Dessert: Vanilleeis
MehrZeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch
darstellung Arbeiten mit darstellung werden im Computer durch (kleine) Zahlen dargestellt in C können im Datentyp char gespeichert werden, dieser umfasst ein Byte und gilt als Ganzzahltyp darstellung Arbeiten
MehrDr. Monika Meiler. Inhalt
Inhalt 8 Das Konfigurationswerkzeug make...8-2 8.1 Modularisierung...8-2 8.2 Modulübersetzung...8-4 8.3 Konfigurationswerkzeug make und Aufbau eines Makefiles...8-8 8.3.1 Abhängigkeiten und Kommandos...
MehrZum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE
Zum Aufwärmen nocheinmal grundlegende Tatsachen zum Rechnen mit reelen Zahlen auf dem Computer. Das Rechnen mit Gleitkommazahlen wird durch den IEEE 754 Standard festgelegt. Es stehen sogenannte einfach
MehrDeklaration, Definition Global, Lokal Modularisierung make statische Variablen Präprozessor. Programmieren in C
Übersicht Deklaration, Definition Global, Lokal Modularisierung make statische Variablen Präprozessor Deklarationen Funktionsprototypen deklarieren am besten vor der main-funktion (sonst Warnung vor Mischung
MehrProgrammierkurs C++ Kapitel 6 Module Seite 1
Programmierkurs C++ Kapitel 6 Module Seite 1 (Quell-)Module Unter einem Modul versteht man einen Teil des Programms, der eigenständig übersetzt werden kann. In der Syntax der Programmiersprachen werden
MehrProgrammiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften
Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder
MehrÜbung 1 - Betriebssysteme I
Prof. Dr. Th. Letschert FB MNI 13. März 2002 Aufgabe 0: Basiswissen Rechnerarchitektur: Übung 1 - Betriebssysteme I Aus welchen Komponenten besteht ein Rechner mit Von-Neumann Architektur? Was sind Bits
MehrC für Java-Programmierer
Carsten Vogt C für Java-Programmierer ISBN-10: 3-446-40797-9 ISBN-13: 978-3-446-40797-8 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-40797-8 sowie im
MehrDr. Monika Meiler. Inhalt
Inhalt 11 Dynamische Feldvereinbarung... 11-2 11.1 Dynamische Vereinbarung von Vektoren... 11-3 11.2 Dynamische Vereinbarung von Matrizen... 11-5 11.3 Die Kommandozeile... 11-8 Propädeutikum 11-1/8 11
MehrInhaltsverzeichnis. Grundbegriffe der C-Programmierung Für den HI-TECH C-Compiler
Inhaltsverzeichnis Grundbegriffe der C-Programmierung 1. Grundsätzliches... 2 1.1 Darstellung von Werten... 2 1.1.1 Dezimale Zahlendarstellung... 2 1.1.2 Binäre Zahlendarstellung... 3 1.1.3 Hexadezimale
MehrC-Programmierung lernen
2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Andre Willms C-Programmierung lernen Anfangen, anwenden, verstehen
MehrÜbung zu Grundlagen der Betriebssysteme. Einführungsveranstaltung 16.10.2012
Übung zu Grundlagen der Betriebssysteme Einführungsveranstaltung 16.10.2012 Termine Übungen wöchentlich, Dienstags 14 Uhr (c.t.), Raum E312 15 Uhr (s.t.), Raum E312 Jede Woche 1 Übungsblatt http://userpages.uni-koblenz.de/~mips/bs/uebung/
MehrGI Vektoren
Vektoren Problem: Beispiel: viele Variablen vom gleichen Typ abspeichern Text ( = viele char-variablen), Ergebnisse einer Meßreihe ( = viele int-variablen) hierfür: Vektoren ( = Arrays = Feld ) = Ansammlung
MehrEinleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens
Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität
MehrDer C Präprozessor. Inhaltsverzeichnis. von Christian Peter 31. März Denition 3. 2 Funktionsweisen 3
Der C Präprozessor von Christian Peter 31. März 2013 Inhaltsverzeichnis 1 Denition 3 2 Funktionsweisen 3 3 Benutzung des C-Präprozessors 4 3.1 Der # Präx............................. 4 3.2 Ersetzung von
MehrÜbersicht. C Modularisierung. Präprozessor, Compiler, Linker. Präprozessor, Compiler, Linker. Präprozessor, Compiler und und Linker Linker
Übersicht Präprozessor, Compiler und und Linker Linker Befehle des Präprozessors C Modularisierung Bedingte Kompilierung Modulare Programmierung Prinzipien der Modularisierung 1 2 Präprozessor, Compiler,
MehrDie Programmiersprache C
Die Programmiersprache C höhere Programmiersprache (mit einigen Assembler-ähnlichen Konstrukten) gut verständliche Kommandos muss von Compiler in maschinenlesbaren Code (Binärdatei) übersetzt werden universell,
MehrPIC16 Programmierung in HITECH-C
PIC16 Programmierung in HITECH-C Operatoren: Arithmetische Operatoren - binäre Operatoren + Addition - Subtraktion * Multiplikation / Division % Modulo + - * / sind auf ganzzahlige und reelle Operanden
MehrEinführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
MehrVerwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C
Übersicht Funktionen Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion Sinn von Funktionen Wiederverwendung häufig verwendeter nicht banaler Programmteile Wiederverwendung
MehrDr. Monika Meiler. Inhalt
Inhalt 3 C-Ausdrücke...3-2 3.1 Arithmetische Ausdrücke...3-3 3.2 Wertzuweisungen...3-5 3.3 Inkrementieren und Dekrementieren...3-6 3.4 Logische Ausdrücke (Bedingungen)...3-7 3.5 Bedingte Ausdrücke...3-8
Mehr4. Einfache Programmstrukturen in C Einfache Programmstrukturen in C
Einfache Programmstrukturen in C 4-1 Welche einfache Programmstrukturen sind zu unterscheiden? Arithmetische und logische Ausdrücke und Zuweisungen Verzweigungen Unvollständige bedingte Anweisungen Vollständige
MehrCompiler Präprozessor Header Files
Freitagsrunde C-Kurs 2011 Compiler Präprozessor Header Files Tutorium 3 This work is licensed under a Creative Commons Attribution NonCommercial ShareAlike 3.0 License Gliederung Compiler Präprozessor
MehrWas gehört (nicht) ins SVN?
Was gehört (nicht) ins SVN? Keine Dateien die aus anderen Dateien generiert werden (z.b. beim der Kompilierung).suo,.ncb (Intellisense),.user, das komplette Debug und Release Verzeichnis Nur Dateien die
MehrErste Schritte der Programmierung in C
Erste Schritte der Programmierung in C C versus C++ Anatomie von C-Programmen für AVR- Mikrocontroller Unterschiede zwischen C++ und C 1 Grundlegende Unterschiede File-Extensions (Header und Quellcode)
MehrProbeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, Uhr Bearbeitungszeit: 105 Minuten
Probeklausur Programmieren in C Sommersemester 2007 Dipl. Biol. Franz Schenk 12. April 2007, 13.00-14.45 Uhr Bearbeitungszeit: 105 Minuten Schalten Sie ihr Mobiltelefon aus. Bei der Klausur ist als einziges
MehrHochschule Für Angewandte Wissenschaften FH München Sommersemester Thomas Kolarz. Folie 1.
Praktikum Btib Betriebssysteme t I Hochschule Für Angewandte Wissenschaften FH München Sommersemester 2010 thomas.kolarz@hm.edu Folie 1 Vorbereitung Booten Sie den Rechner unter Linux und melden Sie sich
MehrATM18-Projekt Arbeiten mit CodeVisionAVR C-Compiler Teil 04 - Der Preprozessor
Teil 01 - Einführung 1 Eine Einführung in C 1.1 Warum C? 1.2 Wie entstand C? 1.3 Der AVR-Mikrocontroller in einem eingebetteten System 1.4 1.5 Editieren von Quell-Dateien Teil 02 - Aufbau eines C-Projektes
MehrJSP Direktiven. Präprozessor-Anweisungen, die in die JSP-Datei eingebettet sind und vor dem eigentlichen Übersetzungsvorgang ausgeführt JSP
JSP Direktiven Präprozessor-Anweisungen, die in die JSP-Datei eingebettet sind und vor dem eigentlichen Übersetzungsvorgang ausgeführt werden JSP Vorverarbeitung JSP* entfernt / ersetzt Direktiven sammelt
MehrSoftwarepraktikum: Einführung in gcc / g++
Softwarepraktikum: Einführung in gcc / g++ (Eingebettete Systeme und Robotik),, http://ai3.inf.uni-bayreuth.de /home/db_lehre/softwarepraktikum/einfuehrungsvortraege/gcc-vortrag.01.sxi Unterschied gcc
MehrProgrammieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff
Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Agenda Elementare Einführung C Programm Syntax Datentypen, Variablen und Konstanten Operatoren und Ausdrücke Kontrollstrukturen
MehrC- Kurs 06 Übersetzung & Module
C- Kurs 06 Übersetzung & Module Dipl.- Inf. Jörn Hoffmann jhoffmann@informaek.uni- leipzig.de Universität Leipzig InsEtut für InformaEk Technische InformaEk Übersetzung Überblick Übersetzung mit Modulen
MehrOrganisatorisches. Übungsleiter: Karsten Otto Homepage: Aufgaben
Organisatorisches Übungsleiter: Karsten Otto (otto@inf.fu-berlin.de) Homepage: http://www.inf.fu-berlin.de/lehre/ss04/sysi/ Aufgaben Montags im Netz Vorbesprechung Dienstag/Mittwoch in den Übungen Abgabe
MehrATM18-Projekt Arbeiten mit CodeVisionAVR C-Compiler Teil 02 - Aufbau eines C-Projektes
Teil 01 - Einführung 1 Eine Einführung in C 1.1 Warum C? 1.2 Wie entstand C? 1.3 Der AVR-Mikrocontroller in einem eingebetteten System 1.4 1.5 Editieren von Quell-Dateien 2 Was ist ein C-Projekt? 2.1 Erzeugen
MehrÜbungspaket 19 Programmieren eigener Funktionen
Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame
MehrJava: Eine kurze Einführung an Beispielen
Java: Eine kurze Einführung an Beispielen Quellcode, javac und die JVM Der Quellcode eines einfachen Java-Programms besteht aus einer Datei mit dem Suffix.java. In einer solchen Datei wird eine Klasse
Mehr10 Die Programmiersprache C99: Zusammenfassung
10 Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 25. September 2014, 18:40 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C Marcel Arndt arndt@ins.uni-bonn.de Institut für Numerische Simulation Universität Bonn Der Anfang Ein einfaches Programm, das Hello World! ausgibt: #include
MehrBei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife
303 Bei for-schleifen muss man nur immer bedenken, dass die letzte Anweisung immer erst nach der Ausführung der restlichen Anweisungen der Schleife durchgeführt wird. 304 305 for-schleifen sind in Aktivitätsdiagrammen
MehrС als erste Programmiersprache
Joachim Goll Ulrich Bröckl Manfred Dausmann С als erste Programmiersprache Vom Einsteiger zum Profi 4., überarbeitete und erweiterte Auflage Teubner B.G.Teubner Stuttgart Leipzig Wiesbaden 1 2 3 4 5 GRUNDBEGRIFFE
Mehr8. Referenzen und Zeiger
8. Referenzen und Zeiger Motivation Variable werden in C++ an speziellen Positionen im Speicher abgelegt. An jeder Position befindet sich 1 Byte. Sie sind durchnummeriert beginnend bei 0. Diese Positionen
MehrDefinition Compiler. Bekannte Compiler
Compiler Inhalt: Definition Compiler / bekannte Compiler Klassifikationen von Compilern Analyse-Synthese-Modell der Kompilierung Analyse des Quellprogramms Synthesephase Die Phasen eines Compilers Symboltabellenverwaltung
MehrLeseprobe. Norbert Heiderich, Wolfgang Meyer. Technische Probleme lösen mit C/C++ Von der Analyse bis zur Dokumentation ISBN:
Leseprobe Norbert Heiderich, Wolfgang Meyer Technische Probleme lösen mit C/C++ Von der Analyse bis zur Dokumentation ISBN: 978-3-446-42382-4 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42382-4
MehrDas erste C++ Programm
Das erste C++ Programm // Program: power8.c // Raise a number to the eighth power. #include int main() { // input std::cout > a; // computation int
MehrU1 3. Übung U1 3. Übung. Die Kommandos auf den folgenden Folien dienen der Veranschaulichung. Sind nicht direkt auf die Übungsaufgabe übertragbar
U1 3. Übung U1 3. Übung Besprechung Aufgabe 0 Make und Makefiles Aufgabe 2 U1-1 Hinweise Die Kommandos auf den folgenden Folien dienen der Veranschaulichung Sind nicht direkt auf die Übungsaufgabe übertragbar
MehrProgrammentwicklung mit C++ (unter Unix/Linux)
Programmentwicklung mit C++ (unter Unix/Linux) Erste Schritte Der gcc - Compiler & Linker Organisation des Source-Codes & Libraries Automatische Programmgenerierung: Make Birgit Möller & Denis Williams
MehrNuetzlicher Kleinkram
Ein paar Hilfestellungen zur Arbeit unter Linux/Unix FB Physik Freie Universität Berlin Computerphysik WS 2007/2008 1 2 3 user@ host :~ > gcc -o programm quelltext. c macht gleich mehrere Dinge auf einmal
MehrKapitel 2. Einfache Beispielprogramme
Kapitel 2 Einfache Beispielprogramme 2.1 Ausgabe auf dem Bildschirm 2.2 Lokale Variablen, Ausdrücke und Schleifen 2.3 Zahlen von der Tastatur einlesen 2.4 Formatierung bei der Ausgabe 2.5 Zusammenfassung
MehrProgrammieren lernen mit Perl
Xpert.press Programmieren lernen mit Perl Bearbeitet von Joachim Ziegler 1. Auflage 2002. Buch. XIV, 400 S. Hardcover ISBN 978 3 540 42685 1 Format (B x L): 15,5 x 23,5 cm Gewicht: 783 g Weitere Fachgebiete
MehrHochschule Darmstadt Informatik-Praktikum WS 2017/2018 WIng Bachelor 6. Aufgabenblatt Zeiger, verkettete Liste, Dateieingabe und -ausgabe
Aufgabe 6: Häuser verwalten - dynamisch Für ein Schneeräumungsunternehmen soll ein Programm zur Verwaltung von Häuserlisten geschrieben werden. Das Programm soll in der Lage sein, zu einem Haus die wichtigsten
MehrTechnisches Programmieren in C++
Technisches Programmieren in C++ Karl Riedling Institut für Sensor- und Aktuatorsysteme 2 Allgemeines Die Rolle des Präprozessors in C++ 3 4 C++- (und Standard-C-) Programme werden einer Vorverarbeitung
MehrDie Programmiersprache C Eine Einführung
Die Programmiersprache C Eine Einführung Christian Gentsch Fakutltät IV Technische Universität Berlin Projektlabor 2. Mai 2014 Inhaltsverzeichnis 1 Einführung Entstehungsgeschichte Verwendung 2 Objektorientiert
MehrProgrammieren in C/C++ und MATLAB
Programmieren in C/C++ und MATLAB Christof Beyer Sven Willert Sabine Schmidt Christian-Albrechts-Universität zu Kiel CAU 7-1 Bisher eingeführt war für Namen nur der Datentyp char. Dieser erlaubt das Speichern
Mehr2Binden 3. und Bibliotheken
3 Vom C-Programm zum laufenden Prozess 3.1 Übersetzen - Objektmodule 1Übersetzen 3. - Objektmodule (2) Teil III 3Vom C-Programm zum laufenden Prozess 2. Schritt: Compilieren übersetzt C-Code in Assembler
MehrWerner Achte rt DATA BECKER
Werner Achte rt. DATA BECKER Inhaltsverzeichnis 1. Einführung 21 1.1 Entwurf von Anwendungssystemen 23 1.2 Entwicklung eines Programms 25 1.3 Objektorientierte Programmierung 29 1.4 Darstellung objektorientierter
MehrThema heute: Vererbung und Klassenhierarchien. Abgeleitete Klassen. Vererbung von Daten und Funktionen. Virtuelle Funktionen
1 Thema heute: Vererbung und Klassenhierarchien Abgeleitete Klassen Vererbung von Daten und Funktionen Virtuelle Funktionen 2 Vererbung oft besitzen verschiedene Datentypen einen gemeinsamen Kern Beispiel:
MehrProgrammiersprachen Einführung in C. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm. Unser erstes C-Programm
Programmiersprachen Einführung in C Teil 2: Prof. Dr. int main (int argc, char *argv[]) int sum = 0; for (i = 0; i
MehrProgrammierung mit C Zeiger
Programmierung mit C Zeiger Zeiger (Pointer)... ist eine Variable, die die Adresse eines Speicherbereichs enthält. Der Speicherbereich kann... kann den Wert einer Variablen enthalten oder... dynamisch
MehrÜbungs- und Praktikumsaufgaben zur Systemprogrammierung Dipl.-Ing. H. Büchter (Lehrbeauftragter) FH-Dortmund WS 2001/2002 / SS 2002
1. Stellen Sie die schrittweise Verbesserung eines Compilers durch das Bootstrap- Verfahren mit Hilfe von T-Diagrammen dar. Gegeben ist ein auf der Maschine M lauffähiger Compiler C 1, der in S geschrieben
MehrKurzeinführung in C. Johannes J. Schneider 27.10.2004
Kurzeinführung in C Johannes J. Schneider 27.10.2004 1 Einleitung C ist eine in vielen Bereichen sehr häufig verwendete Programmiersprache, die von der Betriebssystemprogrammierung bis hin zur Programmierung
MehrEinführung in den Einsatz von Objekt-Orientierung mit C++ I
Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen
MehrBash-Skripting Linux-Kurs der Unix-AG
Bash-Skripting Linux-Kurs der Unix-AG Sebastian Weber 13.06.2012 Was ist ein Bash-Skript? Skript muss mit chmod +x ausführbar gemacht sein Aneinanderreihung von Befehlen normale Befehle nutzbar Sebastian
MehrKapitel 5: Syntaxdiagramme und Grammatikregeln
5. Syntaxdiagramme und Grammatikregeln 5-1 Objektorientierte Programmierung (Winter 2010/2011) Kapitel 5: Syntaxdiagramme und Grammatikregeln Syntaxdiagramme Grammatikregeln (kontextfrei) Beispiele: Lexikalische
MehrEinführung in C. EDV1-04C-Einführung 1
Einführung in C 1 Helmut Erlenkötter C Programmieren von Anfang an Rowohlt Taschenbuch Verlag ISBN 3-4993 499-60074-9 19,90 DM http://www.erlenkoetter.de Walter Herglotz Das Einsteigerseminar C++ bhv Verlags
MehrÜbersicht Shell-Scripten
!!!! Wichtig: Bei Shell-Scripten enden die Zeilen nicht mit einem Strichpunkt!!!! Erste Zeile eines Shell-Scripts: #! /bin/bash Variablen in Shell-Scripts: Variablennamen müssen mit einem Buchstaben beginnen,
MehrBash-Skripting Linux-Kurs der Unix-AG
Bash-Skripting Linux-Kurs der Unix-AG Sebastian Weber 07.01.2013 Was ist ein Bash-Skript? Skript muss mit chmod +x ausführbar gemacht sein Aneinanderreihung von Befehlen normale Befehle nutzbar Sebastian
Mehr2. Programmierung in C
2. Programmierung in C Inhalt: Überblick über Programmiersprachen, Allgemeines zur Sprache C C: Basisdatentypen, Variablen, Konstanten Operatoren, Ausdrücke und Anweisungen Kontrollstrukturen (Steuerfluss)
MehrGrundlagen. Kapitel 1
Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die
MehrShell-Scripting Linux-Kurs der Unix-AG
Shell-Scripting Linux-Kurs der Unix-AG Benjamin Eberle 1. Februar 2016 Was ist ein Shell-Script? Aneinanderreihung von Befehlen, die ausgeführt werden Bedingte und wiederholende Ausführung möglich Nützlich
MehrShell-Scripting Linux-Kurs der Unix-AG
Shell-Scripting Linux-Kurs der Unix-AG Andreas Teuchert 8. Juli 2014 Was ist ein Shell-Script? Aneinanderreihung von Befehlen, die ausgeführt werden Bedingte und wiederholende Ausführung möglich Nützlich
Mehr