Eine Mini-Shell als Literate Program
|
|
|
- Erich Solberg
- vor 8 Jahren
- Abrufe
Transkript
1 Eine Mini-Shell als Literate Program Hans-Georg Eßer Inhaltsverzeichnis 1 Eine Mini-Shell Einen Befehl parsen Was tun mit dem Kommando? Externer Programmaufruf Zusammenfassung 5 Chunk-Verzeichnis 5 Identifier-Verzeichnis 6 1 Eine Mini-Shell Dieses Programm implementiert eine kleine Shell, vergleichbar mit der Bash nur mit deutlich weniger Features: Die Mini-Shell kennt zwei interne Kommandos exit (zum Verlassen der Shell) und ver (das die Versionsnummer anzeigt); für alle anderen Befehle versucht die Shell, ein externes Programm zu starten. Parameter werden dabei an das Programm beim Aufruf mit exec übergeben. Das Programm muss diverse Header-Dateien einbinden, die wir jeweils angeben, wenn sie das erste Mal benötigt werden. 1 * 1 header file inclusions 2c int main () { variable declarations 2b implementation 2a } main, never used. 1
2 Das Hauptprogramm besteht im Wesentlichen aus einer Endlosschleife, in der die Shell immer wieder einen Prompt ausgibt, eine Eingabe akzeptiert und diese dann interpretiert: 2a implementation 2a (1) while (1) { printf ("spsh$ "); fgets (command, sizeof(command), stdin); interpret command 2d } Uses command 2b. In command legt die Funktion fgets die Eingabe ab; wir müssen die Variable noch deklarieren: 2b variable declarations 2b (1) 3a char command[255]; // speichert aktuelles Kommando command, used in chunks 2 and 3c. Für die Funktionen printf und fgets sowie die Konstante stdin (Standardeingabe) benötigen wir die Header-Datei stdio.h: 2c header file inclusions 2c (1) 2e #include <stdio.h> // stdin, fgets(), printf() 1.1 Einen Befehl parsen Um ein Kommando zu interpretieren, schneiden wir von der Eingabe zunächst das letzte Byte (ein Zeilenumbruchzeichen, \n) ab: 2d interpret command 2d (2a) 3b command[strlen(command)-1] = (char) 0; Uses command 2b. Damit wir strlen() verwenden können, binden wir die Header-Datei string.h ein: 2e header file inclusions 2c + (1) 2c 4b #include <string.h> // strlen() Jetzt können wir den Befehl in den Befehlsnamen und weitere Argumente zerlegen; dazu verwenden wir die Funktion strtok, die ein interessantes Funktionsprinzip hat: Sie merkt sich über mehrere Aufrufe hinweg, an welchem String sie gerade arbeitet. Beim ersten Aufruf muss man strtok im ersten Argument einen zu zerlegenden String übergeben und erhält einen Zeiger auf den ersten Teilstring zurück; bei allen weiteren Aufrufen übergibt man im ersten Argument NULL und sagt der Funktion damit, dass sie denselben String weiterbearbeiten soll. Gibt die Funktion selbst NULL zurück, ist die Zerlegung abgeschlossen. 2
3 Für das Zerlegen in mehrere Argumente muss strtok erfahren, welche Zeichen als Trennzeichen fungieren; in unserem Fall sind das Leerzeichen und Tabulatoren. Wir deklarieren an dieser Stelle außerdem die Variable no args, welche die Argumente zählt und bei jedem Durchlauf zunächst auf 0 gesetzt werden muss. Den Rückgabewert von strtok speichern wir jeweils zunächst in part und übertragen ihn dann in das Array args[], das wir auch hier deklarieren: 3a variable declarations 2b + (1) 2b 4g char seps[] = " \t"; // Separatoren (Blank und Tabulator) short no_args; // Anzahl der Argumente im aktuellen Kmd. char *args[10]; // Array fuer bis zu 10 Argumente char *part; // Zeiger auf den naechsten Teil-String args, used in chunks 3 5. no args, used in chunks 3 and 4e. part, used in chunk 3c. seps, used in chunk 3c. 3b interpret command 2d + (2a) 2d 3c no_args = 0; // initialisieren Uses no args 3a. Das Zerlegen in Teil-Strings (Befehl und Argumente) gelingt nun mit folgendem Code: 3c interpret command 2d + (2a) 3b 3d part = strtok (command, seps); while ( part!= NULL ) { args[no_args] = part; no_args++; part = strtok (NULL, seps); }; Uses args 3a, command 2b, no args 3a, part 3a, and seps 3a. 1.2 Was tun mit dem Kommando? Jetzt folgt die Verarbeitung des geparsten Befehls. Zunächst fangen wir drei Sonderfälle ab: Es wurde gar kein Befehl eingegeben; dann gilt no args == 0 und wir können die Verarbeitung abbrechen: 3d interpret command 2d + (2a) 3c 4a if (no_args == 0) continue; Uses no args 3a. 3
4 Es wurde das interne Kommando exit eingebeben, dann verlassen wir die Shell über einen Aufruf von exit(): 4a interpret command 2d + (2a) 3d 4c if (!strcmp(args[0],"exit")) { printf ("Terminating\n"); exit(0); } Uses args 3a. Für die exit-funktion benötigen wir die Header-Datei stdlib.h: 4b header file inclusions 2c + (1) 2e 5a #include <stdlib.h> // exit() Es wurde das interne Kommando ver eingegeben; dann geben wir die Versionsnummer aus springen mit continue an den Anfang der Schleife: 4c interpret command 2d + (2a) 4a 4d else if (!strcmp(args[0],"ver")) { printf ("spsh 0.1\n"); continue; // weiter in der Schleife }; Uses args 3a Externer Programmaufruf Jetzt bleibt nur noch der (Standard-) Fall, dass ein externes Kommando aufgerufen wird: 4d interpret command 2d + (2a) 4c launch program 4e Die Vorgehensweise, um das Programm zu starten, ist die folgende: 1. Argumentliste mit NULL terminieren (die exec-funktion braucht das so) 4e launch program 4e (4d) 4f args[no_args] = NULL; Uses args 3a and no args 3a. 2. mit fork einen Kindprozess erzeugen 4f launch program 4e + (4d) 4e 5b pid = fork(); Uses pid 4g. Die Variable pid müssen wir noch deklarieren: 4g variable declarations 2b + (1) 3a 5c int pid; pid, used in chunks 4f and 5b. 4
5 Außerdem brauchen wir für fork die Header-Datei unistd.h: 5a header file inclusions 2c + (1) 4b 5d #include <unistd.h> // fork(), execvp() 3. im Kindprozess mit exec das externe Programm nachladen (dadurch wird im Kind der Shell-Code durch den Code dieses Programms ersetzt) 4. Im Vater-Prozess mit waitpid darauf warten, dass der Kindprozess fertig ist. 5b launch program 4e + (4d) 4f if ( pid == 0 ) { // Kindprozess execvp (args[0], args); // exec fehlgeschlagen? printf ("%s not found\n", args[0]); exit(0); } else { // Vaterprozess waitpid (pid, &status, 0); }; Uses args 3a, pid 4g, and status 5c. Die Funktion waitpid liest auch den Status der terminierten Kindprozesses aus und speichert ihn in der Variable status, die wir noch nicht deklariert haben: 5c variable declarations 2b + (1) 4g int status; status, used in chunk 5b. Um die waitpid-funktion nutzen zu können, müssen wir gleich zwei Header- Dateien einbinden: 5d header file inclusions 2c + (1) 5a #include <sys/types.h> // waitpid() #include <sys/wait.h> // auch waitpid() 2 Zusammenfassung Damit sind wir am Ende unseres kleines Literate Programs. Wie man hier gut sehen konnte, ist eine Shell mit den elementarsten Features schnell zusammen gebaut. Aus den Bibliotheken werden dabei nur wenige Funktionen benötigt. Der zentrale Mechanismus steckt im Zerlegen der Eingabe mit strtok und dem Programmaufruf mit fork und exec. 5
6 Chunk-Verzeichnis * 1 header file inclusions 2c implementation 2a interpret command 2d launch program 4e variable declarations 2b Identifier-Verzeichnis args: 3a, 3c, 4a, 4c, 4e, 5b command: 2a, 2b, 2d, 3c main: 1 no args: 3a, 3b, 3c, 3d, 4e part: 3a, 3c pid: 4f, 4g, 5b seps: 3a, 3c status: 5b, 5c 6
U7 POSIX-Prozesse U7 POSIX-Prozesse
U7 POSIX-Prozesse U7 POSIX-Prozesse Prozesse POSIX-Prozess-Systemfunktionen Aufgabe 6 U7.1 U7-1 Prozesse: Überblick U7-1 Prozesse: Überblick Prozesse sind eine Ausführumgebung für Programme haben eine
Systemnahe Programmierung in C Übungen Jürgen Kleinöder, Michael Stilkerich Universität Erlangen-Nürnberg Informatik 4, 2011 U7.fm
U7 POSIX-Prozesse U7 POSIX-Prozesse Prozesse POSIX-Prozess-Systemfunktionen Aufgabe 7 U7.1 U7-1 Prozesse: Überblick U7-1 Prozesse: Überblick Prozesse sind eine Ausführumgebung für Programme haben eine
Klausur Betriebssysteme I
Prof. Dr. Michael Jäger FB MNI Klausur Betriebssysteme I 18.3.2011 Bitte bearbeiten Sie die Aufgaben auf den Aufgabenblättern. Die Benutzung von Unterlagen oder Hilfsmitteln ist nicht erlaubt. Die Bearbeitungszeit
Arrays (Felder/Vektoren)
Arrays (Felder/Vektoren) Zusammenfassung mehrerer Variablen des gleichen Typs unter einem Namen im Speicher direkt hintereinander abgelegt Definition: Typname Arrayname [Größe]; Beispiel: int ar [5]; Zugriff
Tafelübung zu BS 1. Prozesse, Shell
Tafelübung zu BS 1. Prozesse, Shell Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund [email protected] http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2012/bs/
Allgemeines. Shell Programmierung Unix. Kommentar. Vorgangsweise. Mag. Thomas Griesmayer
Allgemeines Shell Programmierung Unix Shell Scripts Unix Ein shell script ist eine Textdatei, welche eine Liste von Befehlen (Standard Unix Befehle) beinhaltet. Diese Datei kann durch Aufrufen ausgeführt
Linux Prinzipien und Programmierung
Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2010/2011 1 / 18 2 / 18 fork und Daten Nach dem fork teilen sich Eltern- und Kindprozess zwar den Programmbereich
GI 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
Strings (Zeichenketten)
Strings (Zeichenketten) INE1, Montag M. Thaler, [email protected] Office TG208 http://www.zhaw.ch/~tham 1 Um was geht es? Interaktion mit Computer oft textbasiert Fragen wie wird Text dargestellt? wie wird
Zusammenfassung für CS-Prüfung 3 Seite 1. CS-Zusammenfassung für Prüfung 3 vom Im Beispiel gibt es 3 Deadlocks
Zusammenfassung für CS-Prüfung 3 Seite 1 CS-Zusammenfassung für Prüfung 3 vom 24. 6. 2002 Deadlock Im Beispiel gibt es 3 Deadlocks Unterschied zwischen Blockieren, Verklemmen und Verhungenrn= -> Band 1
Programmiertechnik. 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
Was ist ein Prozess?
Prozesse unter UNIX Definition Was ist ein Prozess? Zeitliche Abfolge von Aktionen Ein Programm, das ausgeführt wird Prozesshierachie Baumstruktur INIT-Prozess ist die Wurzel (pid=1) und wird beim Booten
Bash-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
10 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
Lösung Übungszettel 6
Lösungen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik SS 03 AG Betriebssysteme FB3 Kirsten Berkenkötter Lösung Übungszettel 6 1 Aufgabe 1: Parallel-Server 1.1 Client #include
Programmieren in C (Übungsblatt 1)
21.02.2017 Aufgabe 1: Programmausführung Programmieren in C (Übungsblatt 1) a) Bitte geben Sie den folgenden Programmcode ein: /* Beispiel fuer Textausgaben */ #include int main() { printf("c-programmierung
Programmieren in C (Übungsblatt 1)
27.02.2018 Aufgabe 1: Programmausführung Programmieren in C (Übungsblatt 1) a) Bitte geben Sie den folgenden Programmcode ein: /* Beispiel fuer Textausgaben */ #include int main(void) { printf("c-programmierung
Programmieren in C (Übungsblatt 1)
23.02.2016 Aufgabe 1: Programmausführung Programmieren in C (Übungsblatt 1) a) Bitte geben Sie den folgenden Programmcode ein: /* Beispiel fuer Textausgaben */ #include int main() { printf("c-programmierung
Einführung in C. Alexander Batoulis. 5. Mai Fakutltät IV Technische Universität Berlin
Fakutltät IV Technische Universität Berlin 5. Mai 2014 Inhaltsverzeichnis 1 2 3 4 5 6 7 Überblick Beispielprogramm in Java Beispielprogramm in C 1 2 3 4 5 6 7 Beispielprogramm in Java Beispielprogramm
Aufgabenblatt 5 Musterlösung
Prof. Dr. rer. nat. Roland Wismüller Aufgabenblatt 5 Musterlösung Vorlesung Betriebssysteme I Wintersemester 2017/18 Aufgabe 1: Implementierung von Threads (Bearbeitung zu Hause) Der größte Vorteil ist
Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung.
Dateioperationen Seite 1 von 12 Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung. z.b.: c:\testdateien\text.dat //Datendatei
Bash-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
C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22
C++ Teil 2 Sven Groß IGPM, RWTH Aachen 16. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 2 16. Apr 2015 1 / 22 Themen der letzten Vorlesung Hallo Welt Elementare Datentypen Ein-/Ausgabe Operatoren Sven
G 5. Übung. G-1 Überblick. Besprechung 3. Aufgabe. Infos zur Aufgabe 5: fork, exec. Rechenzeiterfassung. Ü SoS I G.1
G 5. Übung G 5. Übung G-1 Überblick Besprechung 3. Aufgabe Infos zur Aufgabe 5: fork, exec Rechenzeiterfassung G.1 G-2 Hinweise zur 5. Aufgabe G-2 Hinweise zur 5. Aufgabe Prozesse fork, exec exit wait
Informatik. Wiederholung Felder (Arrays), string. Vorlesung
Informatik Vorlesung 04 Wiederholung Felder (Arrays), string 19. November 2018 WiSe 2018 FB Ing - SB Umwelttechnik und Dienstleistung - Informatik Thomas Hoch 1 Ein C++ Programm: Wiederholung #include
Programmiersprachen Einführung in C
Programmiersprachen Einführung in C Teil 2: Prof. Dr. Unser erstes C-Programm int main (int argc, char *argv[]) int i; int sum = 0; for (i = 0; i
Einleitung 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
Die Mini Shell "Mishell"
Praktikum Mishell Die Mini Shell "Mishell" Frühlingssemester 2019 M. Thaler, J. Zeman Inhaltsverzeichnis 1 Einführung 2 1.1 Ziel................................... 2 1.2 Durchführung und Leistungsnachweis................
Arithmetik in der tcsh
Arithmetik in der tcsh Variablen speichern Zeichenketten (also Strings/Wörter) @ statt set Interpretation als arithmetische Ausdrücke (aus Ziffern, (, ), +, -, *, /, % bestehend) Beispiele: @ var = (3
einlesen n > 0? Ausgabe Negative Zahl
1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen
PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN
PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN 2. UNIX/Linux-Prozessverwaltung und zugehörige Systemaufrufe Wintersemester 2016/17 2. Die UNIX/LINUX-Prozessverwaltung Aufgaben: 1. Erzeugen neuer Prozesse
Lösungshinweise/-vorschläge zum Übungsblatt 13: Software-Entwicklung 1 (WS 2017/18)
Dr. Annette Bieniusa Mathias Weber, M. Sc. Peter Zeller, M. Sc. TU Kaiserslautern Fachbereich Informatik AG Softwaretechnik Lösungshinweise/-vorschläge zum Übungsblatt 13: Software-Entwicklung 1 (WS 2017/18)
Herzlich willkommen!
Programmiertechnik 1 Herzlich willkommen! Dozent: Dipl.-Ing. Jürgen Wemheuer Teil 6: Zusammenfassung und Beispiele Mail: [email protected] Online: http://cpp.ewla.de/ Zusammenfassung (1) 2 1. Programm in
Programmiersprachen Einführung in C
Programmiersprachen Einführung in C Teil 4: Prof. Dr. Jörg Schwenk Lehrstuhl für Netz- und Datensicherheit Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen
Unix-Grundkurs 1. Thema heute: Shell-Skripten
Unix-Grundkurs 1 Thema heute: Unix-Grundkurs 2 Ein Shell-Skript ist die Zusammenfassung von Kommandos in einer Textdatei. Diese Textdatei wird wie ein ablaufbares Programm behandelt. Es werden von einer
Bash-Scripting Linux-Kurs der Unix-AG
Bash-Scripting Linux-Kurs der Unix-AG Zinching Dang 02. Juli 2013 Was ist ein Bash-Script? Aneinanderreihung von Befehlen, die ausgeführt werden Bedingte und wiederholende Ausführung möglich Nützlich bei
Funktionen in JavaScript
Funktionen in JavaScript Eine Funktion enthält gebündelten Code, der sich in dieser Form wiederverwenden lässt. Mithilfe von Funktionen kann man denselben Code von mehreren Stellen des Programms aus aufrufen.
Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben!
Projekt: Artikelverwaltung Seite 1 von 5 Entwickeln Sie ein C/C++-Programm für die Verwaltung einer Artikeldatei gemäß folgender Vorgaben! Legen Sie global einen benutzerdefinierten Datentyp artikel an:
Beispiel für einen IPC-Server, der seinen Dienst über den Global Name Service im Netzwerk bekannt gibt. Header-Dateien einbinden
Dokument: gns_ipc_server.c, 1 - Seite 1 - - 1: 1 von 1 - Beispiel für einen IPC-Server, der seinen Dienst über den Global Name Service im Netzwerk bekannt gibt. Header-Dateien einbinden int main(int argc,
Implementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren
FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit Aufgabenblätter erreichbare Punktzahl zugelassene Hilfsmittel, 0800 1000 Uhr (120 min) 16 Seiten (einschl. Deckblatt)
Lösung Übungszettel 6 Aufgabe 1-4
Lösungen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter Lösung Übungszettel 6 Aufgabe 1-4 1 Aufgabe 1 und 2 1.1 Die Bibliothek
Rechenzentrum. Programmieren in C. Simone Knief Rechenzentrum der CAU
Programmieren in C Simone Knief der CAU Gliederung Einleitung Komponenten eines C-Programms Daten speichern: Variablen und Konstanten Anweisungen und Ausdrücke Operatoren Kontrollstrukturen Felder und
Erste 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)
Threads. Foliensatz 8: Threads Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015
Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)
Probeklausur Name: (c)
Einführung in die Praktische Informatik 30.1.2013 Probeklausur Name: Teil I: Datentypen (20 Punkte) Lösen sie die Probleme, indem sie die korrekten Lösungen ankreuzen bzw. in die vorgesehenen Freiräume
Shell-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
Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()
Übungspaket 29 Dynamische Speicherverwaltung malloc() und free() Übungsziele Skript In diesem Übungspaket üben wir das dynamische Alloziieren 1. und Freigeben von Speicherbereichen 2. von Zeichenketten
Shell-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
Betriebssysteme: UNIX-Operationen zur Prozesskontrolle
Betriebssysteme: UNIX-Operationen zur Prozesskontrolle Betriebssysteme: UNIX-Operationen zur Prozesskontrolle WS 2016/17 8. November 2016 1/1 Prozesse und Programme Programm Verschiedene Repräsentationen
Programmiersprachen 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
Einstieg in die Informatik mit Java
Vorlesung vom 18.4.07, Grundlagen Übersicht 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White Space Zeichen 4 Wortsymbole 5 Interpunktionszeichen 6 Operatoren 7 import Anweisungen 8 Form
Einstieg in die Informatik mit Java
1 / 22 Einstieg in die Informatik mit Java Grundlagen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 22 1 Kommentare 2 Bezeichner für Klassen, Methoden, Variablen 3 White
Grundlagen der Programmierung
Grundlagen der Programmierung 8. Vorlesung 25.05.2016 1 Ausdrücke "Befehle", die ein Ergebnis liefern 3 + 4 sin(x) x < 10 getchar() Ausdrücke können Teil eines anderen Ausdrucks sein x = sin( x + y ) Auswertung:
Lösungshinweise zum Übungsblatt 11: Programmieren in C (WS 2018/19)
Dr. habil. Bernd Schürmann Dr. Annette Bieniusa [email protected] TU Kaiserslautern Fachbereich Informatik Lösungshinweise zum Übungsblatt 11: Programmieren in C (WS 2018/19) 1. Dieses Übungsblatt
Lösungshinweise zum Übungsblatt 6: Programmieren in C (WS 2018/19)
Dr. habil. Bernd Schürmann Dr. Annette Bieniusa [email protected] TU Kaiserslautern Fachbereich Informatik Lösungshinweise zum Übungsblatt 6: Programmieren in C (WS 2018/19) 1. Zur Beantwortung
Rückgabewerte von Methoden
OOP Rückgabewerte von Methoden Henrik Horstmann 14. September 2014 Inhaltsverzeichnis Inhaltsverzeichnis 1 Bedeutung der Symbole...1 2 Rückgabewerte von Methoden...2 3 Der freundliche Computer...2 3.1
Kapitel 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
Ausgabe:
Aufgabe 2.10: Schreiben Sie ein Programm, das zunächst die Quadratzahlen zu den Zahlen 1-10 mit Hilfe einer While- Schleife und danach die Quadratzahlen zu den Zahlen 3, 6, 9,.., 30 mit Hilfe einer For-Schleife
Dr. 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
Zeichenketten. Peter Sobe
Zeichenketten existieren in C nicht als eigener Typ. Es können nur Zeichenkettenkonstante z.b. zur Ausgabe benutzt werden. Beispiel: printf( Guten Tag!\n ); Eine Zeichenkette als Variable kann aber in
Dateizugriff unter C
Begriffe Dateizugriff unter C Datei = sequentielle Ansammlung von Datenbytes, z.b. auf einer Festplatte Auch Bildschirm und Tastatur werden wie Dateien behandelt: Bildschirm ist die Datei stdout Tastatur
Die Programmiersprache C99: Zusammenfassung
Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach
Die 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,
Programmieren 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
Lesen Sie alle Aufgabenstellungen sorgfältig durch, bevor Sie mit der Bearbeitung der ersten Aufgabe beginnen.
INE1 Musteraufgaben für die Semesterendprüfung Hilfsmittel Vier Seiten selbst verfasste Zusammenfassung keine weiteren Hilfsmittel keine elektronischen Hilfsmittel Abgabe Füllen Sie das erste Aufgabenblatt
