Linux. Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm. FB Automatisierung und Informatik.
|
|
- Gerhardt Schumacher
- vor 6 Jahren
- Abrufe
Transkript
1 Linux Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik Raum Tel / FB Automatisierung und Informatik: Linux Inhalt 1. Einführung, Literatur, Begriffe 2. Installation 3. Konsolen-Befehle, Shell, Manual 4. Komplexe Befehle (grep, find, tar, sed, cron, netcat) 5. C-Programmierung (C, IO, Thread, make) 6. Python (Sprache) 7. Python (GUI) FB Automatisierung und Informatik: Linux 2 1
2 Linux und C C Variablen à la Java Datentypen à la Java, auch unsigned if à la Java Schleifen à la Java, ohne foreach Prozeduren à la Java-Methoden Keine Klassen (C++, g++) I/O (Komfortables Framework) Handle-Konzept Pointer Threads und Semaphore, Mutex Zugriff auf das System (Dateien, Ordner, Prozesse) FB Automatisierung und Informatik: Linux 3 Linux und C Programme gcc g++ gdb make-datei Editoren vi, vim nano Emacs Texteditor in der GUI Übersetzen in der Konsole Debugger FB Automatisierung und Informatik: Linux 4 2
3 C-Programmierung Beispielcode: Ausgabe eines Textes #include <stdio.h> int main(void){ puts("hallo Wernigerode"); return 0; Übersetzen mit: gcc bsp1.c -o bsp1 -S nur kompilieren -c nur kompilieren und assemblieren -o <Datei> kompilieren, assemblieren, linken -O Optimieren -lname Library name.lib einbinden (Threads) FB Automatisierung und Informatik: Linux 5 Beispielcode: Summe von 1 bis n long long summe; // globale Variable void calc(long n) { long i; summe=0.0; for (i=0; i<=n; i++) { summe+= i; int main(int argc, char *argv[]) { calc(1000); printf("summe: %ld\n",summe); return 0; FB Automatisierung und Informatik: Linux 6 3
4 Beispielcode: Summe von 1 bis n long long calc(long n) { long i; summe=0.0; for (i=0; i<=n; i++) { summe+= i; if [ $# -eq 0 ] then echo "bitte einen Parameter uebergeben" echo " c bsp1" else gcc $1.c -o $1 fi int main(int argc, char *argv[]) { long long summe = calc(1000); printf("summe: %ld\n",summe); return 0; FB Automatisierung und Informatik: Linux 7 I/O-Funktionen fopen FILE *fopen (const char *Pfad, const char *Modus); Modus: r - Datei nur zum Lesen öffnen (READ) w - Datei nur zum Schreiben öffnen (WRITE), löscht den Inhalt der Datei, wenn sie bereits existiert a - Daten an das Ende der Datei anhängen (APPEND), die Datei wird nötigenfalls angelegt r+ - Datei zum Lesen und Schreiben öffnen, die Datei muss bereits existieren w+ - Datei zum Lesen und Schreiben öffnen, die Datei wird nötigenfalls angelegt a+ - Datei zum Lesen und Schreiben öffnen, um Daten an das Ende der Datei anzuhängen, die Datei wird nötigenfalls angelegt b - Binärmodus (anzuhängen an die obigen Modi, z.b. "rb" oder "w+b"). t Textdatei Modus FB Automatisierung und Informatik: Linux 8 4
5 I/O-Funktionen: fopen + fprintf schreiben Rückgabewert: Bei einem Fehler NULL Sonst handle für diese Datei Beispiele: #include <stdio.h> FILE *handle; handle = fopen ("testdatei.txt", "wt"); // wenn vorhanden, gelöscht if (handle == NULL) { printf("fehler beim Oeffnen der Datei."); else { int i=42; fprintf (handle, "Hallo, Welt i:%d\n"); fclose (handle); IO1 FB Automatisierung und Informatik: Linux 9 I/O-Funktionen: fopen + fprintf schreiben #include <stdio.h> FILE *handle; handle = fopen ("testdatei.txt", "wt"); // wenn vorhanden, gelöscht if (handle == NULL) { printf("fehler beim Oeffnen der Datei."); else { for (int i=0; i<100; i++) fprintf (handle, "%d\n",i); // %c %i %s %f %lf %ld fclose (handle); IO2 FB Automatisierung und Informatik: Linux 10 5
6 I/O-Funktionen: fopen + fgets lesen #include <stdio.h> FILE * handle; handle = fopen ("testdatei.txt", "rt"); if (handle == NULL) { printf("fehler beim Oeffnen der Datei."); else { char s[100]; fgets (s, 100, handle); // ende wenn i>=n oder \r\n fclose (handle); puts(s); IO3 FB Automatisierung und Informatik: Linux 11 I/O-Funktionen: Parameter, fopen + fgets lesen #include <stdio.h> int main(int argc, char *argv[]) if (argc>1) { FILE * handle; handle = fopen (argv[1], "rt"); if (handle == NULL) { printf("fehler beim Oeffnen der Datei."); else { char s[100]; fgets (s, 100, handle); // ende wenn i>=n oder \r\n fclose (handle); // if // if // main IO4 FB Automatisierung und Informatik: Linux 12 6
7 I/O-Funktionen: fopen + fprintf schreiben #include <stdio.h> int main(int argc, char *argv[]) if (argc>1) { FILE * handle; handle = fopen (argv[1], "wt"); if (handle == NULL) { printf("fehler beim Oeffnen der Datei."); else { fprintf (handle, "Hallo, Welt\nHallo Hochschule\n"); fclose (handle); // if // if // main IO5 FB Automatisierung und Informatik: Linux 13 I/O-Funktionen: fopen + binär schreiben #include <stdio.h> // size_t fwrite(const void *ptr, size_t size, size_t count, FILE *stream) int main(int argc, char *argv[]) if (argc>1) { FILE * handle; handle = fopen (argv[1], "wb"); if (handle == NULL) { printf("fehler beim Oeffnen der Datei."); else { for (int i=-2; i<100; i++) int n = fwrite (&i, sizeof(i), 1, handle); fclose (handle); // if // if // main IO6 FB Automatisierung und Informatik: Linux 14 7
8 FB Automatisierung und Informatik: Linux 15 abc im Hexeditor: 2er Komplement FB Automatisierung und Informatik: Linux 16 8
9 I/O-Funktionen: fopen + binär lesen int main(int argc, char *argv[]) if (argc>1) { FILE * handle; handle = fopen (argv[1], "rb"); if (handle == NULL) { printf("fehler beim Oeffnen der Datei."); else { int value; for (int i=0; i<100; i++) { int n = fread (&value, sizeof(value), 1, handle); printf("i: %d wert: %d\n",i,value); fclose (handle); // if // if // main IO7 FB Automatisierung und Informatik: Linux 17 I/O-Funktionen: fopen + binär schreiben void testwrite() { int n=102; fwrite (&n, sizeof(n), 1, handle); // vorher wissen wieviel!! for (int i=-2; i<100; i++) { int n = fwrite (&i, sizeof(i), 1, handle); void testread() { int n; int anz = fread (&n, sizeof(n), 1, handle); for (int i=0; i<n; i++) { anz = fread (&value, sizeof(value), 1, handle); printf("i: %d wert: %d anz: %d \n",i,value, anz); IO8 FB Automatisierung und Informatik: Linux 18 9
10 Beispielcode: Threads erzeugen // standardisierte Thread Methode void * calc(void *param) { int retcode=0; puts("im thread"); pthread_exit ( (void *) retcode ); gcc t1.c -o t1 -lpthread int main(int argc, char *argv[]) { pthread_t pt1; if ( pthread_create(&pt1, NULL, calc, NULL) ) { fprintf( stderr, "Fehler beim Erzeugen des 1. Threads\n"); exit (EXIT_FAILURE); return EXIT_SUCCESS; FB Automatisierung und Informatik: Linux 19 Beispielcode: Threads erzeugen mit Parameter t2.c struct ThreadRec { int id; long anz; int anzthreads; ; long long summe; void * calc(void *param) { long i; int von, bis, n; struct ThreadRec *pdaten; pdaten = (struct ThreadRec *) (param); int id = pdaten->id; int diff = pdaten->anz / pdaten->anzthreads; von=diff*(id-1)+1; if (id==pdaten->anzthreads) bis=pdaten->anz; else bis=diff*(id); printf("id: %d von:%d bis:%d\n",id, von,bis); for (i=von; i<=bis; i++) { summe+= i; // for FB Automatisierung und Informatik: Linux 20 10
11 Beispielcode: Threads erzeugen mit Parameter t2.c int main(int argc, char *argv[]) { pthread_t p1,p2; int n=10000; struct ThreadRec tdaten1; struct ThreadRec tdaten2; tdaten1.id=1; tdaten1.anz=n; tdaten1.anzthreads=2; tdaten2.id=2; tdaten2.anz=n; tdaten2.anzthreads=2; summe=0.0; FB Automatisierung und Informatik: Linux 21 Beispielcode: Threads erzeugen mit Parameter t2.c summe=0.0; if ( pthread_create(&p1, NULL, calc, &tdaten1) ) { puts("error beim Erzeugen des 1. Threads"); exit(exit_failure); if ( pthread_create(&p2, NULL, calc, &tdaten2) ) { puts("error beim Erzeugen des 2. Threads"); exit(exit_failure); printf("summe: %ld\n",summe); return 0; gcc t2.c -o t2 -lpthread FB Automatisierung und Informatik: Linux 22 11
12 Beispielcode: Threads erzeugen mit Parameter t3.c Problem: Die Summe ist null Es fehlt das Warten auf das Ende der Thread Lösung: pthread_join(p1,null); pthread_join(p2,null); FB Automatisierung und Informatik: Linux 23 Beispielcode: Threads erzeugen mit Parameter t4.c Problem: Die Summe ist nicht exakt (Synchronize) Lösung: pthread_mutex_t summutex; for (i=von; i<=bis; i++) { pthread_mutex_lock(&summutex); summe+= i; pthread_mutex_unlock(&summutex); pthread_mutex_init( &summutex, NULL ); FB Automatisierung und Informatik: Linux 24 12
13 Debugger Programm gdb Konsolen orientiert Vorgehen: vi b.c // schreiben und speichern gcc b.c ggdb3 -o b // übersetzen gdb b // Aufruf des Debuggers run // starten des Programms - l // Anzeige, list um main - r // Starten - n // next, nächster Schritt, ohne Funktion - s // step. Nächster Schritt, mit Funktion FB Automatisierung und Informatik: Linux 25 Optionen r // Starten, komplett Summe: 55 l // Listing um main l 1,30 // Listing von Zeile 1 bis 30 b 23 // Breakpoint setzen auf Zeile 23 r // Starten bis zum ersten Breakpoint oder vollständig // Angezeigt wird IMMER der nächste Befehl n // nächster Befehl, bis zum Ende r // Starten bis zum ersten Breakpoint oder vollständig // Angezeigt wird IMMER der nächste Befehl s // nächster Befehl step, in die Funktion print i // Anzeige des Inhalts von i print s // Anzeige des Inhalts von s whatis i // Anzeige des Typs von i set variable s=0 // ändern der Summe print s // Anzeige des Inhalts von s, Test c // laufen lassen bis zum Ende oder zum nächsten Breakpoint FB Automatisierung und Informatik: Linux 26 13
14 int summe (int n) { int i, s; s=0; for (i=0; i<=n; i++) s+=i; return s; int main(int argc, char* argv[]) { int i, n, s; int f[10]; n=10; s=summe(n); printf("summe: %d \n",s); for (i=0; i<10; i++) { f[i]=i; i=2; // für Haltepunkt return 0; Testbeispiel für das Debugging FB Automatisierung und Informatik: Linux 27 I/O mit Dateien und Verzeichnissen mkdir(char *path) Anlegen eines Verzeichnisses Rückgabe: 0=okay -1=Fehler ckdir(char *path) rmdir Wechseln in ein Verzeichnis (relativ und absolut) Rückgabe: 0=okay -1=Fehler Löscht ein leeres Verzeichnis Rückgabe: 0=okay -1=Fehler FB Automatisierung und Informatik: Linux 28 14
15 I/O mit Dateien und Verzeichnissen opendir Neue vereinheitliche Posix-Funktion Dir* dir = opendir(char *path) // "/home/user1" "." Anlegen eines Verzeichnisses Rückgabe: 0=okay -1=Fehler Liefert eine Liste der Einträge struct* dirent diritem = readdir(dir *dir) Gibt den i-ten Eintrag zurück Rückgabe: Fehler: NULL int closedir(dir *dir) Rückgabe: Fehler: NULL struct dirent ino_t d_ino; /* inode number */ off_t d_off; /* offset to the next dirent */ unsigned short d_reclen; /* length of this record */ unsigned char d_type; // DT_REG DT_DIR DT_UNKNOWN DT_FIFO DT_SOCK DT_CHR DT_BLK char d_name[256]; /* filename */ FB Automatisierung und Informatik: Linux 29 Aufgaben: Nachbau von mkdir cd ls grep Rekursiv ls -R find FB Automatisierung und Informatik: Linux 30 15
Linux. Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm. Hochschule Harz. FB Automatisierung und Informatik.
Linux Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm Hochschule Harz FB Automatisierung und Informatik mwilhelm@hs-harz.de http://www.miwilhelm.de Raum 2.202 Tel. 03943 / 659 338 FB Automatisierung und Informatik:
MehrIm 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
MehrDateioperationen Fachhochschule Würzburg-Schweinfurt Prof. Dr. Martin Ochs. Abspeichern und Einlesen von Texten (Strings) in Dateien
Informatik I SS 2003 Dateioperationen 1 Textdateien, Öffnen Abspeichern und Einlesen von Texten (Strings) in Dateien 1. Das Öffnen einer Datei a) Deklaration eines Zeigers auf eine Datei FILE *pfile; b)
MehrVariablen. Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes
Variablen Deklaration: «Datentyp» «Variablenname» Datentyp bestimmt Größe in Bytes: sizeof Beispiel: long int v; Größe: 4 Bytes v ist Stück im Speicher, der 4 Bytes lang ist Speicherzugriff? Über Adressen!
MehrDateizugriff 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
MehrProgrammiersprachen Einführung in C
Programmiersprachen Einführung in C Teil 10: Arbeiten mit Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen in C 4. Bildschirm
MehrThreads. 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)
MehrTafelübung zu BS 4. Dateioperationen
Tafelübung zu BS 4. Dateioperationen Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2013/bs/
Mehrfile:///h:/dokumente/_fh/ ws /etinfoii/vorlesung/infoii...
7 Dateien Um Daten dauerhaft zu sichern, müssen sie auf den Sekundärspeicher (die Festplatte) abgespeichert werden. Beim Umgang mit Peripheriegeräten unter Windows und UNIX ist zu beachten Die Verbindung
MehrFH 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)
MehrÜbungen zu Softwaresysteme I Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2004 E-Uebung3.fm
E 3. Übung E 3. Übung Besprechung 1. Aufgabe Aufgabe 3: malloc Debugger gdb E.1 1. Include, Deklarationen #include #include void append_element(int value); int remove_element(void);
MehrÜbungen zu Systemnahe Programmierung in C (SPiC)
Übungen zu Systemnahe Programmierung in C (SPiC) Peter Wägemann, Sebastian Maier, Heiko Janker (Lehrstuhl Informatik 4) Übung 8 Sommersemester 2015 Inhalt POSIX Verzeichnisschnittstelle opendir, closedir,
MehrPThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes
PThreads Prozesse und Threads Ein Unix-Prozess hat IDs (process,user,group) Umgebungsvariablen Verzeichnis Programmcode Register, Stack, Heap Dateideskriptoren, Signale message queues, pipes, shared memory
MehrInhalt Übungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Terminal - historisches (etwas vereinfacht) Seriell. Computer. Netzwerk DFÜ.
Übungen zu Systemnahe Programmierung in C (SPiC) Sebastian Maier, Heiko Janker (Lehrstuhl Informatik 4) Übung 5 Wintersemester 2015/2016 Lehrstuhl Informatik 4 Übungen zu SPiC (WS 2015/16) 2 21 Terminal
MehrMusterlösung. Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller
Musterlösung Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit, 10:30 12:00 Uhr(90 min) Aufgabenblätter 14 Seiten(einschl. Deckblatt) erreichbare Punktzahl
MehrC-Kurs 2010 Pointer. 16. September v2.7.3
C-Kurs 2010 Pointer Sebastian@Pipping.org 16. September 2010 v2.7.3 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License. C-Kurs Mi Konzepte, Syntax,... printf, scanf Next
MehrSystempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom Foliensatz 2
Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom 29.10. Foliensatz 2 Modularisierung (T) Eigene Headerdateien und Bibliotheken (P) Arten der Parameterübergabe (P) Arrays und Strukturen
MehrEinführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein (kmk@informatik.uni-kiel.
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 7, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
MehrTeil I Debuggen mit gdb
Teil I Debuggen mit gdb Wer kennt das nicht? $./a.out Segmentation fault Was tun dagegen? printf()s in den Code einfügen? Besser (und professioneller): Einen Debugger verwenden Wer kennt das nicht? $./a.out
Mehr5. Dateioperationen. Tafelübung zu BSRvS1. Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund
Tafelübung zu BSRvS1 5. Dateioperationen Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/teaching/ss2008/bsrvs1/exercises/
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
MehrShell. Oder Konsole suchen im Application Finder. Auch Terminal, Bash oder Kommandozeile genannt. Bash nimmt Befehle entgegen und führt diese aus
LUKAS LEIPOLD Shell Shell Oder Konsole suchen im Application Finder Auch Terminal, Bash oder Kommandozeile genannt Bash nimmt Befehle entgegen und führt diese aus Befehle I cd mkdir pwd rm mv cp ls ln
MehrFILE *fp; char fname[100];... fp = fopen (fname, rb ); if( fp == NULL ) { perror( fopen );... } // Fehlernachricht auf letzten Fehler, der aufkam
Aktuelle Fileposition ermitteln long pos; pos=ftell(fp); //aktuelle Bytenummer Filelaenge in Bytes fseek(fp,0,seek_end); pos=ftell(fp); Fileendeerkennung int rc; rc = feof (fp) //!= 0 bei Fileende // ==
MehrHochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller
Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit, 08:00 09:30 Uhr (90 min) Aufgabenblätter 14 Seiten (einschl. Deckblatt) erreichbare Punktzahl 54 zugelassene
MehrDateien. INE2, Mittwoch / TE402 M. Thaler, Office TG208. ZHAW, M. Thaler, K. Rege, G.
Dateien INE2, Mittwoch 8.00-9.35 / TE402 M. Thaler, tham@zhaw.ch Office TG208 http://www.zhaw.ch/~tham 1 Um was gehtes? Informationsaustausch Programme tauschen Information mit Umgebung über - Kommandozeilen-Argumente
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).
MehrÜbungen zu Softwaresysteme I Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2004 K-Uebung9.fm
K 9. Übung K 9. Übung K-1 Überblick Besprechung 7. Aufgabe (jbuffer) Unix, C und Sicherheit K.1 Mögliche Programmsequenz für eine Passwortabfrage in einem Server- Programm: int main (int argc, char *argv[])
MehrWie man eigene Programme erstellt
Kapitel 3 Wie man eigene Programme erstellt In diesem Kapitel geht es darum, sich mit einem Compiler vertraut zu machen. Dabei erfahren Sie, wie Sie eigene Programme auf den Systemen Windows und Linux
MehrProgrammieren in C. Die C-Standardbibliothek: Datei Ein- und Ausgabe. Prof. Dr. Nikolaus Wulff
Programmieren in C Die C-Standardbibliothek: Datei Ein- und Ausgabe Prof. Dr. Nikolaus Wulff Das Dateisystem In C erfolgt die gesamte Ein- und Ausgabe durch Lesen oder Schreiben von Strömen (stream). Periphere
MehrModellierung und Programmierung
Modellierung und Programmierung Dr. Martin Riplinger 9.1.2013 IAM Institut für Angewandte Mathematik Fortgeschrittene Ein- und Ausgabe Bisher: Ein- und Ausgabe nur über die Kommandozeile Erweiterung: Konzept
MehrGrundlagen. Die Komponenten eines C Programms. Das erste Programm
Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen
MehrLinux. Fehlerbehandlung Sebastian Maier. Aufgabe: concat Übung 7 Anhang
Übungen zu Systemnahe Programmierung in C (SPiC) Sebastian Maier (Lehrstuhl Informatik 4) Übung 7 Sommersemester 2016 Lehrstuhl Informatik 4 Übungen zu SPiC (SS 2016) 2 23 Terminal - historisches (etwas
MehrWiederholung und Vertiefung. Programmieren in C. Pointer und so... thoto. /dev/tal e.v. 6. April 2013 (Version vom 11. April 2013) Programmieren in C
Pointer und so... 6. April 2013 (Version vom 11. April 2013) Agenda für Heute 1 Wiederholung und Vertiefung Wiederholung 2 Was sind? Felder und Vektoren? Zeichenketten Wiederholung Wiederholung Funktion
MehrE-/A-Funktionalität nicht Teil der Programmiersprache
C Ein-/Ausgabe C Ein-/Ausgabe C.1 Überblick E-/A-Funktionalität nicht Teil der Programmiersprache Realisisierung durch "normale" Funktionen Bestandteil der Standard-Funktionsbibliothek einfache Programmierschnittstelle
MehrEin- und Ausgabe mit Dateien
Ein- und Ausgabe mit Dateien Edouard Lamboray Informatik I für D-ITET (2004) Ein- und Ausgabekonzepte in C und C++ fstream header Streamobjekt Files schreiben und lesen Argumente von main Vorbemerkungen
MehrDateien lesen und schreiben mit php
Dateien lesen und schreiben mit php (fopen(), fgets(), fread(), fwrite, fclose(), fputs(), file_get_contents()) Der Dateizugriff (anfügen und lesen) fopen(filename, mode) Öffnen vom lokalen Dateisystem
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
MehrNetzwerksicherheit Musterlösung Übungsblatt 4: Viren
Institut für Informatik Alina Barendt und Philipp Hagemeister Netzwerksicherheit Musterlösung Übungsblatt 4: Viren 1 Vorbereitung msg db "Virus" mov ah, 40h mov bx, 1 mov cx, $5 mov dx, msg int 21h ; Write
MehrSkripte. Beispiel. http://www.icp.uni-stuttgart.de. M. Fyta Computergrundlagen 73/93
Skripte Wie kann ich mir komplexe Befehle merken? Gar nicht aber der Computer kann es für mich! Einfach die Befehle in eine Textdatei schreiben und ausführbar machen #! (Shebang) in der ersten Zeile bestimmt
MehrFile I/O. Persistieren von Daten. Gastvorlesung Ralph Erdt erdt (bei) informatik.fh-wiesbaden.de
File I/O, Ralph Erdt, erdt (bei) informatik.fh-wiesbaden.de Seite 1 File I/O Persistieren von Daten Gastvorlesung - 18.01.10 Ralph Erdt erdt (bei) informatik.fh-wiesbaden.de File I/O, Ralph Erdt, erdt
MehrMaterial zum Grundlagenpraktikum ITS. eine kleine Linux-Befehlsreferenz. Stand: Oktober 2007 zusammengestellt von: Cornelia Menzel Version 1.
Material zum Grundlagenpraktikum ITS eine kleine Linux-Befehlsreferenz Stand: Oktober 2007 zusammengestellt von: Cornelia Menzel Version 1.0 Lehrstuhl für Netz- und Datensicherheit Ruhr-Universität Bochum
MehrHintergrundspeicher (Secondary storage) Katalog. SPiC
J Dateisysteme J Dateisysteme J.2 Allgemeine Konzepte (3) J.2 Allgemeine Konzepte (2) J.1 Allgemeine Konzepte Einordnung Prozessor (CPU, Central processing unit) Datei speichert Daten oder Programme Katalog
MehrAssembler - Einleitung
Assembler - Einleitung Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Einleitung 1/19 2008-04-01 Teil 1: Hochsprache
MehrBeispiel 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,
MehrLinux-Einführung Übung
Linux-Einführung Übung Mark Heisterkamp 24. 25. Februar 2010 1 Einführung und Grundlagen 1.1 Erste Schritte... 1.1.1 Xterminalfenster Öffnen Sie ein weiteres Xterminalfenster mit der Maus. mittels Kommando.
MehrProgrammiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 7. Funktionen Einleitung Nach dem Prinzip Divide and Conquer bietet es sich an, größere Aufgaben in kleinere Teile zu unterteilen. Anweisungsblöcke,
MehrLinux-Befehlsreferenz
Grundpraktikum Netz- und Datensicherheit Linux-Befehlsreferenz Lehrstuhl für Netz- und Datensicherheit Ruhr-Universität Bochum Zusammengestellt von: Cornelia Menzel, Endres Puschner Stand: 15. September
MehrVorsemesterkurs Informatik
Vorsemesterkurs Informatik Einführung in die Bedienung von Unix-Systemen SoSe 2013 Stand der Folien: 3. April 2013 Übersicht 1 Unix, Linux, Shells 2 Shell-Kommandos 3 Dateien und Verzeichnisse Vorkurs
MehrProgrammieren in C++
Programmieren in C++ SS 2016 Vorlesung 7, Dienstag 7. Juni 2016 (Eingabe / Ausgabe, Optionen) und Rest von Vorlesung 6: Rückgabe von Argumenten Prof. Dr. Hannah Bast Lehrstuhl für Algorithmen und Datenstrukturen
MehrEin- und Ausgabe. C - Kurs Mario Bodemann. 15. September 2010
Ein- und Ausgabe C - Kurs 2010 Mario Bodemann 15. September 2010 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License 1 / 46 Inhaltsverzeichnis 1 Wiederholung
MehrPraxis der Programmierung
Dynamische Datentypen Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Dynamische Datentypen 2 Dynamische Datentypen
MehrSCI Linux Einführung
Service Center Informatik bernhardt@cs.uni-kl.de endler@cs.uni-kl.de sci@cs.uni-kl.de 08.10.2015 Die Textkonsole () öffnen Bedienung über den Menüeintrag Terminal mit dem Shortcut strg + alt + t ... und
MehrEin- und Ausgabe. C - Kurs Mario Bodemann. 15. September 2010
Ein- und Ausgabe C - Kurs 2010 Mario Bodemann 15. September 2010 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License 1 / 46 Inhaltsverzeichnis 1 Wiederholung
MehrArbeiten mit der Shell Teil 1
Arbeiten mit der Shell Teil 1 Linux-Kurs der Unix-AG Zinching Dang 09. November 2015 Die Unix-Philosophie Es gibt viele kleine Programme Können die jeweiligen Aufgaben gut lösen Komplexe Aufgaben werden
MehrLinux II. Reguläre Ausdrücke Editoren Scripting. 2 Linux II. Linux I II III Res WN/TT NLTK XML Weka E Reguläre Ausdrücke Editoren Scripting
Linux II 2 Linux II Reguläre Ausdrücke Editoren Scripting Reguläre Ausdrücke Reguläre Ausdrücke beschreiben eine Menge von Zeichenfolgen und werden benutzt um m festzustellen, ob eine Zeichenkette Teil
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
MehrEin- und Ausgabe mit Dateien
Ein- und Ausgabe mit Dateien Edouard Lamboray Informatik I für D-ITET (2004) Ein- und Ausgabekonzepte in C und C++ fstream header Streamobjekt Files schreiben und lesen Argumente von main 2 Vorbemerkungen
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
MehrArbeiten mit der Shell Teil 1
Arbeiten mit der Shell Teil 1 Linux-Kurs der Unix-AG Benjamin Eberle 4. Mai 2016 Die Komandozeile unter Linux Wird als Shell bezeichnet Die Shell ist eines der vielen Programme einer Linux-Distribution
MehrEinführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015
Java Crashkurs Kim-Manuel Klein (kmk@informatik.uni-kiel.de) May 4, 2015 Quellen und Editoren Internet Tutorial: z.b. http://www.java-tutorial.org Editoren Normaler Texteditor (Gedit, Scite oder ähnliche)
Mehr182. stdio. 183. stdio. Eingabe. Ausgabe. Typisch für Zeileneingabe und Analyse: #include <stdio.h>
182. stdio Eingabe int getchar (), getc (FILE * fp), fgetc (FILE * fp); char * gets (char * buf), * fgets (char * buf, int len, FILE * fp); int scanf (const char * fmt,...); int fscanf (FILE * fp, const
MehrPraktikum Betriebssysteme 1. Aufgabe (1)
FG TECHNISCHE INFORMATIK U BS 041 01 TH 09 Praktikum Betriebssysteme 1. Aufgabe (1) Es wird ein unter LINUX lauffähiges C++-Programm ptab, mit dem Informationen über die Partitionierung von Festplatten
MehrTyp : void* aktuelle Parameter Pointer von beliebigem Typ
2. Funktionen - Prototypvereinbarung typangabe funktionsname(parameterliste); - Funktionsdefinition typ funktionsname(parameterliste){ Anweisung - Funktionstyp -> Typ der Funktionswertes zulaessige Typangaben
MehrC allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.
C-Crash-Kurs Eine kurze, keinesfalls erschöpfende Einführung in die Sprache C für Studierende, die eine strukturierte imperative Programmiersprache beherrschen. Die Vorstellung erfolgt am Beispiel von
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
Mehr7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt
7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt 1 Kontrollfragen Rekursion Was bedeutet Rekursion? Geben Sie Beispiele
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
MehrLINUX Gesamtmitschrift
LINUX Gesamtmitschrift Martin Rabensteiner, 22.11.2015 Filesystem unter Linux - Keine Laufwerksbuchstaben - ~ Home-Verzeichnis User - Versteckte Dateien.filename Pfade 1. Absoluter Pfad eindeutiger Weg
MehrEinführung in die Kommandozeile
Einführung in die Kommandozeile...oder auch: Hier hat alles angefangen. Tom Priebe Freitagsrunde Technische Universität Berlin 28. Oktober 2011 Inhalt 1 Einführung Über die Kommandozeile Grundbefehle Parameter
MehrEinführung in die Programmierung für Physiker. Die Programmiersprache C Strukturen ("struct...")
Einführung in die Programmierung für Physiker Die Programmiersprache C Strukturen ("struct...") Marc Wagner Institut für theoretische Physik Johann Wolfgang Goethe-Universität Frankfurt am Main WS 2013/14
MehrArbeiten mit der Shell Teil 1
Arbeiten mit der Shell Teil 1 Linux-Kurs der Unix-AG Zinching Dang 2. Mai 2017 Übersicht Wiederholung & Vertiefung Die Unix-Philosophie Shellbefehle Befehle & Optionen Zusammenfassung & Ausblick Tux im
MehrInformatik I Programmieren in C
Informatik I Programmieren in C Zusammenfassung des Semesters Prof. Dr. Nikolaus Wulff Agenda Elementare Einführung C Programm Syntax Datentypen, Variablen und Konstanten Operatoren und Ausdrücke Kontrollstrukturen
Mehr2 2. Tag. 2.1 Das Dateisystem. das Dateisystem organisiert die Speicherung von Daten. viele Betriebssysteme haben verschiedene Dateisysteme
2 2. Tag 2.1 Das Dateisystem das Dateisystem organisiert die Speicherung von Daten viele Betriebssysteme haben verschiedene Dateisysteme ein gutes Dateisystem ist wichtig um Daten sicher zu lagern Das
MehrÜbung 4: Schreiben eines Shell-Skripts
Aufgabenteil 1 Ziel der Übung Übung 4: Schreiben eines Shell-Skripts Anhand eines einfachen Linux-Skripts sollen die Grundlagen der Shell-Programmierung vermittelt werden. Das für die Bash-Shell zu erstellende
MehrHochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller
Hochschule Ravensburg-Weingarten Schriftliche Prüfung Programmieren Prof. Dr. M. Zeller Datum, Zeit, 10:30 12:00 Uhr(90 min) Aufgabenblätter 15 Seiten(einschl. Deckblatt) erreichbare Punktzahl 61 zugelassene
MehrU23 - Shellcode. Twix Chaos Computer Club Cologne. Motivation Einstieg Der erste Shellcode Nullbytes, NOP Slides
Twix e.v. http://koeln.ccc.de 2016-11-28 Überblick 1 Motivation Was ist Shellcode? Beispiel 2 Einstieg Erzeugen, Testen von Shellcode 3 Der erste Shellcode Strings in Shellcode 4 Nullbytes, NOP Slides
MehrArrays (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
MehrBash-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
MehrOutline. 1 Einleitung. 2 Einführung in C. 3 Fortgeschrittenes in C. 4 Einführung in Emacs Lisp. 5 Einführung in Prolog. 6 Formale Semantik
Outline 1 Einleitung 2 Einführung in C 3 Fortgeschrittenes in C 4 Einführung in Emacs Lisp 5 Einführung in Prolog 6 Formale Semantik Imperative Programmierung Imperatives Paradigma Ziel: Ablaufbeschreibung
MehrC-Programme erstellen und ausführen
INE1 Informatik für Ingenieure 1 Praktikum 2 C-Programme erstellen und ausführen Aufgabe 1: Programm mit DevC++ erstellen In dieser Aufgabe erstellen wir ein erstes Programm mit DevC++, kompilieren es
MehrMerkblatt System-C Installation Linux
1. Herunterladen: SystemC unter www.accellera.org Downloads Accellerra Standards 2. Kommandozeile öffnen SystemC (Core Language including Examples & TLM, AMS, ) Core SystemC Language and Examples akzeptieren
MehrComputer & GNU/Linux Einführung Teil 4
Inst. für Informatik [IFI] Computer & GNU/Linux EinführungTeil 4 Simon Haller, Sebastian Stab 1/20 Computer & GNU/Linux Einführung Teil 4 Simon Haller, Sebastian Stabinger, Benjamin Winder Inst. für Informatik
MehrBenutzer- und Rechtevergabe
Benutzer- und Rechtevergabe Gliederung 1) Einführung 2) Rechte 3) Benutzer 4) Editoren Einführung GNU/Linux ist ein Mehrbenutzer- Betriebssystem (d.h. es können mehrere GNU/Linux ist ein Mehrbenutzer-
MehrStrukturen können wie normale Variablen an Funktionen übergeben werden. Strukturen können auch Ergebnis einer Funktion sein
19 Strukturen 19.2Strukturen als Funktionsparameter 19.2 Strukturen als Funktionsparameter Strukturen können wie normale Variablen an Funktionen übergeben werden Übergabesemantik: call by value Funktion
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
MehrC und Linux HANSER. Martin Gräfe. Die Möglichkeiten des Betriebssystems mit eigenen Programmen nutzen. Z., erweiterte Auflage
2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Martin Gräfe C und Linux Die Möglichkeiten des Betriebssystems mit
MehrTools zur Programmierung mit C Software Entwicklung 1
Tools zur Programmierung mit C Software Entwicklung 1 Annette Bieniusa, Mathias Weber, Peter Zeller Inhaltsverzeichnis 1 Compiler 1 1.1 Installation.................................. 2 1.1.1 Installation
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
MehrFolien zur AG: Objektorientiertes Programmieren in C++ Einheit 5: Funktionen. Michael Hahsler, Gottfried Rudorfer und Werner J.
Folien zur AG: Objektorientiertes Programmieren in C++ Einheit 5: Funktionen Michael Hahsler, Gottfried Rudorfer und Werner J. Schönfeldinger 4. Dezember 2000 1 Aufbau dieser Einheit Aufbau von Funktionen
MehrVersuchsziele Konzepte der parallelen Programmierung am Beispiel von Threads anwenden können. Einbau von Kontrollmechanismen mittels Semaphore.
Hochschule Harz Versuch: fcopy Mit Java FB Automatisierung und Informatik Betriebssysteme Thema: Kopieren einer Datei unter der Kontrolle von Semaphoren Versuchsziele Konzepte der parallelen Programmierung
MehrGrundlagen der Programmierung
Grundlagen der Programmierung 5. Vorlesung 09.11.2016 1 Beispiel: Hello World #include Beginn Hauptprogramm int main() { Blockbeginn printf("hello World\n"); Einbinden der Headerdatei(en) für
MehrKommandozeile und Batch-Dateien. Molekulare Phylogenetik Praktikum
Kommandozeile und Batch-Dateien Molekulare Phylogenetik Praktikum 2 1.1 Die Kommandozeile Alternative zur grafischen Oberfläche (GUI) eines Betriebssystems Vorteile: Sich wiederholende Befehle können gespeichert
MehrFunktionales C++ zum Ersten
Funktionales C++ zum Ersten WiMa-Praktikum 1, Teil C++, Tag 1 Christoph Ott, Büro: Helmholtzstr.18, E22 Tel.: 50-23575, Mail: christoph.ott@uni-ulm.de Institut für Angewandte Informationsverarbeitung 26.08.08
MehrAdvanced Programming in C
Advanced Programming in C Pointer und Listen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Variablen vs. Pointer - Statischer und dynamischer
MehrEinheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen
Einheit Datentypen in der Programmiersprache C Schwerpunkt: Elementare (arithmetische) Datentypen Kurs C/C++ Programmierung, WS 2008/2009 Dipl.Inform. R. Spurk Arbeitsgruppe Programmierung FR 6.2 Informatik
MehrComputernutzung für Experimentalphysiker Frei progammierbare Rechner als Werkzeuge in der Experimentalphysik Teil 2
Computernutzung für Experimentalphysiker Frei progammierbare Rechner als Werkzeuge in der Experimentalphysik Teil 2 Was bisher geschah: Die freie Programmierbarkeit macht Rechner zum echten Multitool Computer
MehrKurzeinführung in C99
Kurzeinführung in C99 Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Oktober 2013 Überblick 1 Compiler und Editoren - Was wird benötigt um ein Programm zu erstellen 2
MehrFallbeispiel Unix. Betriebssysteme. Hermann Härtig TU Dresden
Fallbeispiel Unix Betriebssysteme Hermann Härtig TU Dresden Wegweiser Geschichte und Struktur von Unix Vom Programm zum Prozess Unix-Grundkonzepte Dateien Prozesse Prozess-Kommunikation Signale Pipes Sockets
MehrU6-1 Linux-Benutzerumgebung
U6 Verzeichnisse und Sortieren U6 Verzeichnisse und Sortieren Linux-Benutzerumgebung Fehlerbehandlung POSIX-Verzeichnis-Systemschnittstelle Datei-Attribute in Inodes Zugriff aus der Windows-Umgebung über
Mehr