Tafelübung zu BS 5. Dateioperationen

Größe: px
Ab Seite anzeigen:

Download "Tafelübung zu BS 5. Dateioperationen"

Transkript

1 Tafelübung zu BS 5. Dateioperationen Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund 1

2 Agenda Besprechung Aufgabe 4: Interprozesskommunikation Systemcalls unter Linux: Wie funktioniert das eigentlich? Arbeiten mit Dateien Low-Level Dateioperationen High-Level Dateioperationen - Schreiben und Lesen - Schreibe/Lese-Position - Fehlerbehandlung High-Level Verzeichnisoperationen BS: U5 Dateioperationen 2

3 Besprechung Aufgabe 4 Foliensatz Besprechung BS: U5 Dateioperationen 3

4 Systemaufrufe durch Programme Systemaufruf = Aufruf von Funktionen, die das Betriebssystem zur Verfügung stellt Zugriffe auf angeschlossene Hardware Funktionen zur Speicherverwaltung Funktionen zur Prozessverwaltung Syscalls: Funktionen, die nur in einem privilegierten Modus ausgeführt werden können, d.h. mit erweiterten Rechten Linux: Aufteilung in User- und Kernelspace Problem: Ein einfacher Funktionsaufruf in die Kernelfunktionen ist nicht möglich Ein fehlerhaftes Anwendungsprogramm könnte das System zum Absturz bringen Jedes Anwendungsprogramm hätte volle Zugriffsrechte z.b. Scheduling und Rechteverwaltung BS: U5 Dateioperationen 4

5 Linux-Systemcalls (hier für x86) Einzige Möglichkeit für Userspace-Programme auf Kernelspace-Funktionen zuzugreifen Jedem Systemcall ist eine eindeutige Nummer zugeordnet arch/x86/kernel/syscall_table_32.s ENTRY(sys_call_table).long sys_restart_syscall /* 0 */.long sys_exit /* 1 */.long sys_fork /* 2 */.long sys_read /* 3 */.long sys_write /* 4 */.long sys_open /* 5 */... Direkter Aufruf von Systemcalls z.b. per syscall(2) #define _GNU_SOURCE #include <unistd.h> #include <sys/syscall.h> /* hier wird SYS_read=3 definiert */ #include <sys/types.h> int main(int argc, char *argv[]) {... syscall(sys_read, fd, &buffer, nbytes); /* read(fd, &buffer, nbytes) */ return 0; } BS: U5 Dateioperationen 5

6 Systemstruktur Applikation read() Applikation Applikation... Userspace libc Systemcall Schnittstelle Kernel Subsysteme Kernelspace Gerätetreiber Hardware BS: U5 Dateioperationen 6

7 Ablauf eines Systemcalls 1) Argumente Stack (Konvention: Letztes zuerst) 2) Aufruf der Bibliotheksfunktion (Implizit: push Rücksprungadresse) 3) Argumente in Register laden (Stack für User und Kernel versch.) 4) Interrupt auslösen 5) Interruptnummer Index in Tabelle, hält Adressen der Zielfunktionen 6) Zielfunktion wählt mit eax Funktion aus (Array aus Funktionspointern) 7) Kernel: sys_read() 8) Mode-Wechsel (alter Userstack) 9) Ausführung fährt fort 10) Rücksprungadr. noch auf Stack 11) Stack aufräumen BS: U5 Dateioperationen 7

8 Beispiel: _exit(255) per Hand Parameter von Systemcalls: < 6 Parameter: Parameter werden in den Registern ebx, ecx, edx, esi, edi abgelegt >= 6 Parameter: ebx enthält Pointer auf Userspace mit Parametern Aufruf des sys_exit Systemcalls per Assembler void _exit(int status) (beende den aktuellen Prozess mit Statuscode status) sys_exit Systemcall hat die Nr. 0x01 myexit.c int main(void) { asm("mov $0x01, %eax\n" /* syscall # in eax */ "mov $0xff, %ebx\n" /* Parameter 255 in ebx */ "int $0x80\n"); /* Softwareinterrupt an Kernel */ return 0; } pohl@host:~$./myexit pohl@host:~$ echo $? 255 pohl@host:~$ BS: U5 Dateioperationen 8

9 Arbeiten mit Dateien Alles unter Linux/Unix wird auf Dateien abgebildet viele verschiedene Dateitypen (Geräte, Sockets,...) Typische Dateioperationen sind Öffnen/Lesen/Schreiben/Schließen Unter Linux mehrere Möglichkeiten Syscall-Wrapper der C-Bibliothek ( low-level ), z.b. open(2) int open(const char *path, int flags) syscall( NR_open, path, flags) - keine Abstraktion, sondern direkte Umsetzung in Systemcall Abstrakte Stream Schnittstelle der C-Bibliothek ( high-level ), z.b. fopen(3) FILE* fopen(const char *path, const char *mode) Abstraktion von Filedeskriptor Stream (FILE*) open(path, flags) BS: U5 Dateioperationen 9

10 Low-Level Dateioperationen Öffnen von Dateien mit open(2) int open(const char *path, int flags); gibt einen Dateideskriptor zurück, der für die anderen Funktionen verwendet wird Lesen aus Dateien mit read(2) ssize_t read(int fd, void *buf, size_t count); Schreiben in Dateien mit write(2) ssize_t write(int fd, void *buf, size_t count); Schließen von offenen Dateien mit close(2) int close(int fd); BS: U5 Dateioperationen 10

11 Beispiel low-level #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #define SIZE 64 int main(void) { int r_fd = 0, w_fd = 0; ssize_t r_bytes = 0, w_bytes = 0; char buf[size] = {0}; } /* Datei zum Lesen öffnen */ r_fd = open( /tmp/inputfile, O_RDONLY); if (r_fd == -1) { /*... Fehler... */ } r_bytes = read(r_fd, buf, SIZE); /* SIZE Bytes aus der Datei lesen */ If (r_bytes == -1) { /*... Fehler... */ } /* Ausgabedatei öffnen und leeren; nicht vorhanden? -> erzeugen! */ w_fd = open( /tmp/outputfile, O_CREAT O_WRONLY O_TRUNC); if (w_fd == -1) { /*... Fehler... */ } w_bytes = write(w_fd, buf, r_bytes); /* gelesene Bytes schreiben */ If (w_bytes == -1) { /*... Fehler... */ } close(r_fd); close(w_fd); return 0; BS: U5 Dateioperationen 11

12 High-Level Dateioperationen Öffnen von Dateien mit fopen(3) FILE *fopen(const char *path, const char *mode); Modi: - r / r+ (lesen/+schreiben) - w / w+ (schreiben/+lesen) - a / a+ (anhängen/+lesen) Beispiel: stream = fopen("/tmp/inputfile", "r"); if (stream == NULL) { } perror("fopen"); fclose(stream); exit(exit_failure); Rückgabewert: NULL im Fehlerfall, ansonsten einen FILE-Zeiger bzw. Datenstrom BS: U5 Dateioperationen 12

13 High-Level Dateioperationen (2) Öffnen von Dateien mit fopen(3) FILE *fopen(const char *path, const char *mode); Modi: - r / r+ (lesen/+schreiben) struct FILE enthält Informationen - w / w+ (schreiben/+lesen) die zur Kontrolle des Datenstroms - a / a+ (anhängen/+lesen) benötigt werden. Beispiel: stream = fopen("/tmp/inputfile", "r"); if (stream == NULL) { } perror("fopen"); fclose(stream); exit(exit_failure); Rückgabewert: NULL im Fehlerfall, ansonsten einen FILE-Zeiger bzw. Datenstrom BS: U5 Dateioperationen 13

14 High-Level Dateioperationen (3) Öffnen von Dateien mit fopen(3) FILE *fopen(const char *path, const char *mode); Modi: - r / r+ (lesen/+schreiben) - w / w+ (schreiben/+lesen) - a / a+ (anhängen/+lesen) Beispiel: stream = fopen("/tmp/inputfile", "r"); if (stream == NULL) { } perror("fopen"); fclose(stream); exit(exit_failure); Rückgabewert: NULL im Fehlerfall, ansonsten einen FILE-Zeiger bzw. Datenstrom BS: U5 Dateioperationen 14

15 High-Level Dateioperationen (4) Schließen von offenen Dateien mit fclose(3) int fclose(file *stream); Beispiel: fclose(stream); Rückgabewert: EOF im Fehlerfall, ansonsten 0. BS: U5 Dateioperationen 15

16 High-Level Dateioperationen (5) int fprintf(file *stream, const char *format,..); wird dazu verwendet, um einen String mit einem bestimmten format zu erzeugen und auf einem stream auszugeben Beispiel: fprintf(stream,"%15s Line number %10u\n", student, matrikelnummer); Rückgabewert: -1 im Fehlerfall, ansonsten die Anzahl der geschriebenen Zeichen. Siehe fprintf(3) BS: U5 Dateioperationen 16

17 High-Level Dateioperationen (6) int fscanf(file *stream, const char *format,..); wird dazu verwendet, um aus einem stream mit einem bestimmten format zu lesen Beispiel: stream = fopen("/tmp/inputfilef", "r"); fscanf (stream, "%15s", str); Rückgabewert: EOF im Fehlerfall, ansonsten die Anzahl der erfolgreich eingelesen Daten Siehe fscanf(3) BS: U5 Dateioperationen 17

18 High-Level Dateioperationen (7) int feof(file *stream); überprüft, ob das Ende der Datei erreicht wurde Beispiel: while (!feof(stream)){ }... Rückgabewert: ungleich 0, wenn das Ende der Datei erreicht wird - muss explizit mit clearerr(3) zurückgesetzt werden Siehe feof(3) BS: U5 Dateioperationen 18

19 Schreibe/Lese-Position Schreibe/Lese- Position Datei wird zum Lesen oder Schreiben geöffnet Schreibe/Lese- Position Datei wird zum Anhängen geöffnet Kader2012.txt 59 Nummer Vorname Nachname Verein 1 Manuel Neuer FC Bayern München 14 Holger Badstuber FC Bayern München 16 Philipp Lahm FC Bayern München 20 Jérôme Boateng FC Bayern München 5 Mats Hummels Borussia Dortmund 6 Sami Khedira Real Madrid 7 Bastian Schweinst. FC Bayern München 10 Lukas Podolski 1. FC Köln 8 Mesut Özil Real Madrid 13 Thomas Müller FC Bayern München 11 Miroslav Klose Lazio Rom \n 1 Zeile = 60 Zeichen BS: U5 Dateioperationen 19

20 Schreibe/Lese-Position (2) long ftell(file *stream); ftell kann die aktuelle Schreibe/Lese-Position im Stream bzw. in der Datei ermitteln Rückgabewert: -1 im Fehlerfall, ansonsten die aktuelle Position des Streams in der Datei (aktuelle Offset) Siehe ftell(3) BS: U5 Dateioperationen 20

21 Schreibe/Lese-Position (3) 59 \n ftell=0 ftell=120 ftell=300 ftell=feof Nummer Vorname Nachname Verein 1 Manuel Neuer FC Bayern München 14 Holger Badstuber FC Bayern München 16 Philipp Lahm FC Bayern München 20 Jérôme Boateng FC Bayern München 5 Mats Hummels Borussia Dortmund 6 Sami Khedira Real Madrid 7 Bastian Schweinst. FC Bayern München 10 Lukas Podolski 1. FC Köln 8 Mesut Özil Real Madrid 13 Thomas Müller FC Bayern München 11 Miroslav Klose Lazio Rom Kader2012.txt 1 Zeile = 60 Zeichen BS: U5 Dateioperationen 21

22 Schreibe/Lese-Position (4) int fseek(file *stream, long offset, int whence); setzt die Schreibe/Lese-Position neue Position = offset (bytes) + whence whence: - SEEK_SET: Anfang der Datei - SEEK_CUR: Indikator für die aktuelle Position - SEEK_END: Ende der Datei Rückgabewert: -1 im Fehlerfall, ansonsten 0. Siehe fseek(3) BS: U5 Dateioperationen 22

23 Schreibe/Lese-Position (5) 59 \n 1.fseek(fp,120,SEEK_SET) 3.fseek(fp, 120,SEEK_CUR) 2.fseek(fp,300,SEEK_CUR) 4.fseek(fp,0,SEEK_END) Nummer Vorname Nachname Verein 1 Manuel Neuer FC Bayern München 14 Holger Badstuber FC Bayern München 16 Philipp Lahm FC Bayern München 20 Jérôme Boateng FC Bayern München 5 Mats Hummels Borussia Dortmund 6 Sami Khedira Real Madrid 7 Bastian Schweinst. FC Bayern München 10 Lukas Podolski 1. FC Köln 8 Mesut Özil Real Madrid 13 Thomas Müller FC Bayern München 11 Miroslav Klose Lazio Rom Kader2012.txt 1 Zeile = 60 Zeichen BS: U5 Dateioperationen 23

24 Fehlerbehandlung int ferror(file *stream); Beispiel: fscanf(stream, %15s,str) if (ferror(stream)) { } perror( fscanf"); fclose(stream); exit(exit_failure); Rückgabewert: ungleich 0, wenn es gesetzt ist Siehe ferror(3) BS: U5 Dateioperationen 24

25 High-Level Verzeichnisoperationen Öffnen von Verzeichnissen mit opendir(3) DIR *opendir(const char *path); Auslesen der Verzeichnisinhalte mit readdir(3) struct dirent *readdir(dir *dir); Rückgabe = NULL alle Verzeichniseinträge gelesen, keine weiteren vorhanden oder Fehler sonst: in dirent.d_name steht der Name des Verzeichniseintrages Schließen von geöffneten Verzeichnissen (closedir(3)) int closedir(dir *dir); Benötigte Header: <sys/types.h>, <dirent.h> BS: U5 Dateioperationen 25

26 Beispiel: Verzeichnis Auslesen #include <sys/types.h> #include <dirent.h> #include <stdio.h> int main(void) { int retval = 0, count = 0; DIR *dir = NULL; struct dirent *entry = NULL; dir = opendir("/tmp"); /* Verzeichnis öffnen, DIR-Zeiger erstellen */ if (!dir) { /*... Fehler... */ } /* jeder Aufruf liefert einen Eintrag, NULL -> Listenende */ while ((entry = readdir(dir))) { printf("eintrag %d: %s\n", ++count, entry->d_name); } printf("anzahl: %d\n", count); retval = closedir(dir); /* Verzeichnis wieder schließen */ if (retval == -1) { /*... Fehler... */ }; } return 0; BS: U5 Dateioperationen 26

Tafelübung zu BS 5. Dateioperationen

Tafelübung zu BS 5. Dateioperationen Tafelübung zu BS 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/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2012/bs/

Mehr

Tafelübung zu BS 4. Dateioperationen

Tafelü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/

Mehr

5. Dateioperationen. Tafelübung zu BSRvS1. Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund

5. 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/

Mehr

4. Speicherverwaltung

4. Speicherverwaltung Tafelübung zu BSRvS1 4. Speicherverwaltung 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/

Mehr

Tafelübung zu BS 5. Dateioperationen

Tafelübung zu BS 5. Dateioperationen Tafelübung zu BS 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/~os/ http://ess.cs.tu-dortmund.de/de/teaching/ss2010/bs/

Mehr

U23 - Shellcode. Twix Chaos Computer Club Cologne. Motivation Einstieg Der erste Shellcode Nullbytes, NOP Slides

U23 - 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

Mehr

File I/O. Persistieren von Daten. Gastvorlesung Ralph Erdt erdt (bei) informatik.fh-wiesbaden.de

File 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

Mehr

FILE *fp; char fname[100];... fp = fopen (fname, rb ); if( fp == NULL ) { perror( fopen );... } // Fehlernachricht auf letzten Fehler, der aufkam

FILE *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 // ==

Mehr

Programmiersprachen Einführung in C

Programmiersprachen 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

Mehr

file:///h:/dokumente/_fh/ ws /etinfoii/vorlesung/infoii...

file:///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

Mehr

Dateioperationen Fachhochschule Würzburg-Schweinfurt Prof. Dr. Martin Ochs. Abspeichern und Einlesen von Texten (Strings) in Dateien

Dateioperationen 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)

Mehr

Übungen zu Systemnahe Programmierung in C (SPiC)

Ü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,

Mehr

Dateien. INE2, Mittwoch / TE402 M. Thaler, Office TG208. ZHAW, M. Thaler, K. Rege, G.

Dateien. 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

Mehr

E-/A-Funktionalität nicht Teil der Programmiersprache

E-/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

Mehr

Modellierung und Programmierung

Modellierung 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

Mehr

Linux. Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm. FB Automatisierung und Informatik.

Linux. Dipl.-Inf., Dipl.-Ing. (FH) Michael Wilhelm. 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:

Mehr

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. 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:

Mehr

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN 3. UNIX/Linux-Dateisysteme und zugehörige Systemaufrufe und Kommandos (Teil I) Wintersemester 206/7 UNIX/Linux-Dateisystem(e) Systemaufrufe zur Dateiarbeit:

Mehr

Betriebssysteme Teil 2: I/O-Systemaufrufe bei LINUX

Betriebssysteme Teil 2: I/O-Systemaufrufe bei LINUX Betriebssysteme Teil 2: I/O-Systemaufrufe bei LINUX Betriebssysteme WS 2013/14 - Teil 2/IO-Syscalls 09.10.13 1 Übersicht Prinzip der Systemaufrufe I/O-Syscalls Directory Syscalls 2 Idee der Systemaufrufe

Mehr

Dienstspezifikation nach RFC 2396 193

Dienstspezifikation nach RFC 2396 193 Dienstspezifikation nach RFC 2396 193 Für die Kombination aus Rechnernamen (oder alternativ einer IP-Adresse) und einer Portnummer gibt es mit RFC 2396 einen Standard: hostport host [ : port ] host hostname

Mehr

Tafelübung zu BS 4. Interprozesskommunikation

Tafelübung zu BS 4. Interprozesskommunikation Tafelübung zu BS 4. Interprozesskommunikation Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/

Mehr

Einteilung von Dateien. Streams

Einteilung von Dateien. Streams Einteilung von Dateien Streams allgemeines Modell für bewegte Daten, wobei Daten (Bytes) zwischen dem Hauptspeicher und einer Quelle oder einem Ziel bewegt werden Quelle oder Ziel können sein Datenträger

Mehr

Fallbeispiel Unix. Betriebssysteme. Hermann Härtig TU Dresden

Fallbeispiel 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

Mehr

Strukturen können wie normale Variablen an Funktionen übergeben werden. Strukturen können auch Ergebnis einer Funktion sein

Strukturen 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

Mehr

Tafelübung zu BS 4. Speicherverwaltung

Tafelübung zu BS 4. Speicherverwaltung Tafelübung zu BS 4. Speicherverwaltung 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/ss2014/bs/

Mehr

Aufbau eines Kernelmoduls

Aufbau eines Kernelmoduls Kernel Module Kernelmodul = ladbare/entfernbare Objektdatei (Dateisystem, Gerätetreiber, Systemeingriffe) Vorteile: Ressourcenverbrauch abhängig vom aktuellen Anforderungen Erweiterung der Kernelfunktionalität

Mehr

Betriebssysteme. Agenda. Tafelübung 4. Speicherverwaltung. Olaf Spinczyk.

Betriebssysteme. Agenda. Tafelübung 4. Speicherverwaltung. Olaf Spinczyk. Betriebssysteme Tafelübung 4. Speicherverwaltung http://ess.cs.tu-dortmund.de/de/teaching/ss217/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware

Mehr

Betriebssysteme. Tafelübung 4. Speicherverwaltung. Olaf Spinczyk.

Betriebssysteme. Tafelübung 4. Speicherverwaltung. Olaf Spinczyk. Betriebssysteme Tafelübung 4. Speicherverwaltung http://ess.cs.tu-dortmund.de/de/teaching/ss217/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware

Mehr

Physische Dateistrukturen

Physische Dateistrukturen Direktzugriffsdateien Seite 1 Charakteristik: Folge von Elementen (physischen Datensätzen) Länge (Speicherbedarf) dynamisch Begriffe: x = < > leere Datei x x = Datei x mit einem Datensatz x1 x =

Mehr

Ein- und Ausgabe mit Dateien

Ein- 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

Mehr

182. stdio. 183. stdio. Eingabe. Ausgabe. Typisch für Zeileneingabe und Analyse: #include <stdio.h>

182. 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

Mehr

Hintergrundspeicher (Secondary storage) Katalog. SPiC

Hintergrundspeicher (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

Mehr

System Monitoring mit strace. Systemcall tracing

System Monitoring mit strace. Systemcall tracing System Monitoring mit strace Systemcall tracing 1 Gliederung Einleitung: Was ist strace Grundlagen zu strace Kernel Kernelspace vs. Userspace Systemcalls ptrace Simple strace (Demo) strace die wichtigsten

Mehr

Operating Systems Principles. Event Queue

Operating Systems Principles. Event Queue Humboldt University Computer Science Department Operating Systems Principles Event Queue 1. Aufgabe 3 Wochen Zeit zum Lösen der Aufgaben Aufgabenstellung auf der SAR Website Abgabe über GOYA Abgabefrist:

Mehr

Programmierung mit C Datei-Ein- und Ausgabe

Programmierung mit C Datei-Ein- und Ausgabe Programmierung mit C Datei-Ein- und Ausgabe Datei-Ein- und Ausgabe Datei Datenobjekt, bei dem die Daten auf einem externen Datenträger (z. B. Festplatte) abgelegt werden Das Öffnen einer Datei erzeugt

Mehr

U6-1 Linux-Benutzerumgebung

U6-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

Netzwerksicherheit Musterlösung Übungsblatt 4: Viren

Netzwerksicherheit 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

Mehr

E.1 Allgemeine Konzepte (3) E.1 Allgemeine Konzepte (2) E.1 Allgemeine Konzepte. Datei. Einordnung. Katalog / Verzeichnis

E.1 Allgemeine Konzepte (3) E.1 Allgemeine Konzepte (2) E.1 Allgemeine Konzepte. Datei. Einordnung. Katalog / Verzeichnis E Dateisysteme E Dateisysteme (3) Einordnung Prozessor (CPU, Central processing unit) Datei speichert Daten oder Programme Katalog Verzeichnis erlaubt Benennung der Dateien enthält Zusatzinformationen

Mehr

Malware. Carlo U. Nicola 09. Dezember Die Struktur eines (harmlosen) aber echten Virus-Programmes analysieren;

Malware. Carlo U. Nicola 09. Dezember Die Struktur eines (harmlosen) aber echten Virus-Programmes analysieren; FHNW: Labor Netzwerkssicherheit Malware Carlo U. Nicola 09. Dezember 2012 Ziel Die Ziele dieser Aufgabe sind: 1. Anhand der printf(...) C-Funktion erkennen, dass die (Un)-Sicherheit bereits implizit in

Mehr

Ein- und Ausgabe mit Dateien

Ein- 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

Mehr

Betriebssysteme, Rechnernetze und verteilte Systeme 1. Crashkurs C (2)

Betriebssysteme, Rechnernetze und verteilte Systeme 1. Crashkurs C (2) Betriebssysteme, Rechnernetze und verteilte Systeme 1 Crashkurs C (2) 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/

Mehr

Lösung Übungszettel 6

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

Mehr

Dateizugriff unter C

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

Mehr

Tafelübung zu BS 1. Prozesse verwalten

Tafelübung zu BS 1. Prozesse verwalten Tafelübung zu BS 1. Prozesse verwalten 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/

Mehr

Beispiel Block 2 Stream I/O Parallele Prozesse: fork, exec und wait Interprozesskommunikation mit Unnamed Pipes

Beispiel Block 2 Stream I/O Parallele Prozesse: fork, exec und wait Interprozesskommunikation mit Unnamed Pipes File Descriptors Beispiel Block 2 Stream I/O Parallele Prozesse: fork, exec und wait Interprozesskommunikation mit Unnamed Pipes Verweis auf Eintrag in Tabelle offener Dateien (file descriptor table) Standard

Mehr

Übungen zu Systemnahe Programmierung in C (SPiC)

Übungen zu Systemnahe Programmierung in C (SPiC) Übungen zu Systemnahe Programmierung in C (SPiC) Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2013 Inhalt Linux Terminal Arbeitsumgebung Manual Pages Fehlerbehandlung Bibliotheksfunktionen

Mehr

18.1 Überblick Überblick (3)

18.1 Überblick Überblick (3) Überblick: Teil D Betriebssystemabstraktionen 18.1 Überblick Einordnung 15 Nebenläufigkeit Prozessor (CPU, Central processing unit) 16 Ergänzungen zur Einführung in C 17 Betriebssysteme 18 Dateisysteme

Mehr

Tafelübung zu BSRvS1. 3. Philosophen. Fortsetzung Grundlagen C-Programmierung

Tafelübung zu BSRvS1. 3. Philosophen.  Fortsetzung Grundlagen C-Programmierung Tafelübung zu BSRvS1 3. Philosophen 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/

Mehr

3. Philosophen. Tafelübung zu BSRvS1. Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund

3. Philosophen. Tafelübung zu BSRvS1. Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware. Lehrstuhl für Informatik 12 TU Dortmund Tafelübung zu BSRvS1 3. Philosophen 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/

Mehr

Linux/Unix Systemprogrammierung

Linux/Unix Systemprogrammierung Linux/Unix Systemprogrammierung Pablo Yánez Trujillo Poolmanager Team Universität Freiburg August 14, 2006 Pablo Yánez Trujillo Linux/Unix Systemprogrammierung Slide 1 of 48 Einführung Wer mehr über sein

Mehr

Praktikum Betriebssysteme 1. Aufgabe (1)

Praktikum 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

Mehr

Tafelübung zu BS 1. Prozesse verwalten

Tafelübung zu BS 1. Prozesse verwalten Tafelübung zu BS 1. Prozesse verwalten 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/ss2015/bs/

Mehr

Hardware-Programmierung mit Linux/NASM

Hardware-Programmierung mit Linux/NASM Hardware-Programmierung mit Linux/NASM Daniel Grün 12. Februar 2007 Zusammenfassung Direkte Ansteuerung der Parallel-Schnittstelle mittels NASM unter Linux nur unter Einsatz von reinen Assembler-Routinen

Mehr

Tafelübung zu BSRvS 1 2. Prozesssynchronisation

Tafelübung zu BSRvS 1 2. Prozesssynchronisation Tafelübung zu BSRvS 1 2. Prozesssynchronisation Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/

Mehr

Übung 1 - Betriebssysteme I

Ü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

Mehr

I/O-Hardware Grundlagen. Ein- und Ausgabe. Memory-Mapped I/O. Device Controller

I/O-Hardware Grundlagen. Ein- und Ausgabe. Memory-Mapped I/O. Device Controller I/O-Hardware Grundlagen Grundlagen von Ein-/Ausgabe-Hardware und Software I/O-Software-Schichten Wir betrachten I/O-Hardware wie Hard Disks, Bildschirme, Drucker etc. hier eigentlich als Blackbox, die

Mehr

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. 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

Mehr

Übersicht. Informatik 1 Teil 10 Dateien

Übersicht. Informatik 1 Teil 10 Dateien Übersicht 10.1 Permanente Datenspeicher 10.2 Festplatte (Bild) 10.3 Dateien 10.4 Dateien öffnen 10.5 Der Filepointer 10.6 Schreiben in Dateien - die Funktion fprintf( ) 10.7 Lesen aus Dateien die Funktion

Mehr

Programmieren 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 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

Mehr

Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert.

Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert. Ein- und Ausgabe Die elementare Ausgabe von Daten auf externe Medien, wie Dateien und das Einlesen davon wird demonstriert. Komplexe E/A-Operationen werden erst diskutiert, nachdem das Klassenkonzept erarbeitet

Mehr

Im Windows Betriebssystem sind Dateien eindeutig gekennzeichnet durch ihren Pfad, Dateinamen und nach einem Punkt die Dateierweiterung.

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

Mehr

Betriebssysteme BS-V SS 2015. Hans-Georg Eßer. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls. Dipl.-Math., Dipl.-Inform.

Betriebssysteme BS-V SS 2015. Hans-Georg Eßer. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls. Dipl.-Math., Dipl.-Inform. BS-V Betriebssysteme SS 2015 Dipl.-Math., Dipl.-Inform. Foliensatz V: Ulix: Interrupts und Faults Ulix: System Calls v1.0, 2015/05/28 (klassische Dokumentation) Folie V-1 Übersicht: BS Praxis und BS Theorie

Mehr

Betriebssysteme BS-D SS Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz D: Interrupts und Faults System Calls. v1.

Betriebssysteme BS-D SS Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz D: Interrupts und Faults System Calls. v1. BS-D Betriebssysteme SS 2015 Hans-Georg Eßer Dipl.-Math., Dipl.-Inform. Foliensatz D: Interrupts und Faults System Calls v1.2, 2015/05/03 Betriebssysteme, SS 2015 Hans-Georg Eßer Folie D-1 Übersicht: BS

Mehr

Betriebssysteme KU - Einführungstutorium

Betriebssysteme KU - Einführungstutorium Betriebssysteme KU - Einführungstutorium SWEB-Tutoren irc://irc.at.euirc.net/bs Teamwork Arbeitsaufteilung? Zeiteinteilung? Codeeinteilung? Kommunikation! Kommunikation Kommunikation mit dem Team Gruppentreffen

Mehr

Embedded-Linux-Seminare. Linux als Betriebssystem

Embedded-Linux-Seminare. Linux als Betriebssystem Embedded-Linux-Seminare Linux als Betriebssystem http://www.embedded-linux-seminare.de Diplom-Physiker Peter Börner Spandauer Weg 4 37085 Göttingen Tel.: 0551-7703465 Mail: info@embedded-linux-seminare.de

Mehr

Fortgeschrittene I/O

Fortgeschrittene I/O 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)

Mehr

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming

Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming Betriebssysteme Übung 2. Tutorium System Calls & Multiprogramming Task Wiederholung 1 System SysCalls (1) Wozu? Sicherheit Stabilität Erfordert verschiedene modes of execution: user mode privileged mode

Mehr

Systemnahe Software WS 2006/2007

Systemnahe Software WS 2006/2007 Systemnahe Software WS 2006/2007 Andreas F. Borchert Universität Ulm 5. Februar 2007 Konkurrierende Zugriffe Prinzipiell erlaubt Unix den konkurrierenden Zugriff mehrerer Prozesse auf die gleiche Datei.

Mehr

Karlsruher Institut für Technologie

Karlsruher Institut für Technologie Karlsruher Institut für Technologie Lehrstuhl für Programmierparadigmen Sprachtechnologie und Compiler WS 2010/2011 Dozent: Prof. Dr.-Ing. G. Snelting Übungsleiter: Matthias Braun Lösung zu Übungsblatt

Mehr

Netzwerksicherheit Musterlösung Übungsblatt 5: Firewalls

Netzwerksicherheit Musterlösung Übungsblatt 5: Firewalls Institut für Informatik Philipp Hagemeister Netzwerksicherheit Musterlösung Übungsblatt 5: Firewalls 1 Virus-Konstruktion Erstellen Sie nun ein Programm in einer Programmiersprache Ihrer Wahl, welches

Mehr

Variablen. 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 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!

Mehr

Übungen zu Softwaresysteme I Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2004 K-Uebung9.fm

Ü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[])

Mehr

8. Datei-Eingabe und -Ausgabe

8. Datei-Eingabe und -Ausgabe 8. Datei-Eingabe und -Ausgabe In C sind eine Reihe von Standarddateien vordefiniert: ZEIGER stdin stdout stderr GERÄTEDATEI Standardeingabe Standardausgabe Standardfehlerausgabe Diese Standard-FILE-Zeiger

Mehr

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!! !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!! Erste Zeile eines PERL-Scripts: #! /usr/bin/perl Variablen in PERL: Normale Variablen beginnen mit einem $-Zeichen Array-Variablen beginnen mit

Mehr

Musterlö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 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

Mehr

C-Crashkurs. Praktikum Systemmanagement und Sicherheit

C-Crashkurs. Praktikum Systemmanagement und Sicherheit C-Crashkurs Praktikum Systemmanagement und Sicherheit ZIELE DIESES KURSES 15.04.2014 Dipl.-Inf. M. Bohr C_Crashkurs 2 Compiler gcc verwenden geläufigste Datentypen in C kennen Fehlerbehandlung (ohne Ausnahmeklassen)

Mehr

U23 Assembler Workshop

U23 Assembler Workshop Ike e.v. http://koeln.ccc.de 2016-11-05 Überblick 1 CPU, Assembler Überblick x86 x86 Assembler 2 RAM, Stack, Calling Conventions Stack Calling Conventions Stackframes 3 Branches Jumps 4 Speicher, C-Interface

Mehr

6. Eingabe und Ausgabe, Dateien

6. Eingabe und Ausgabe, Dateien 6. Eingabe und Ausgabe, Dateien Möglichkeiten für die Eingabe: Eingabe von der Konsole Nutzer- Eingabefelder in Fensteroberflächen Interaktiv Eingabe durch Webseiten (HTML-FORM-Elemente) Eingabe aus Dateien

Mehr

Arrays (Felder/Vektoren)

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

Mehr

Assembler - Adressierungsarten

Assembler - Adressierungsarten Assembler - Adressierungsarten Dr.-Ing. Volkmar Sieh Department Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2008 Assembler - Adressierungsarten 1/31 2008-04-01

Mehr

MMC/SD FAT 16 mit AVR und C

MMC/SD FAT 16 mit AVR und C MMC/SD FAT 16 mit AVR und C Die Bibliothek von Roland Riegel enthält einen kompletten FAT16 Zugriff auf MMC/SD Karten über den SPI eines µc. Anforderungen: - SPI oder 5 freie PINs am Controller - Für den

Mehr

Organisatorisches. Übungsleiter: Karsten Otto Homepage: Aufgaben

Organisatorisches. Ü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

Mehr

C-Kurs 2010 Pointer. 16. September v2.7.3

C-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

Mehr

Übungen zu Softwaresysteme I Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2004 E-Uebung3.fm

Ü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

C/C++-Programmierung

C/C++-Programmierung 1 C/C++-Programmierung Speicherverwaltung, 0, const Sebastian Hack Christoph Mallon (hack mallon)@cs.uni-sb.de Fachbereich Informatik Universität des Saarlandes Wintersemester 2009/2010 2 Speicherverwaltung

Mehr

Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus

Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus Rechnerarchitektur und Betriebssysteme (CS201): Frühe Betriebssysteme, geschützte CPU-Befehle, CPU-Modus 2. November 2012 Prof. Dr. Christian Tschudin Departement Mathematik und Informatik, Universität

Mehr

Zeichendarstellung. Zeichen sind Zahlen (in C) Zeichen und switch

Zeichendarstellung. 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

Mehr

Beispiel für einen IPC-Server, der seinen Dienst über den Global Name Service im Netzwerk bekannt gibt. Header-Dateien einbinden

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,

Mehr

Programmieren in C++

Programmieren 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

Mehr

Kommunikationsnetze. 2. Direkte TCP/IP-Verbindungen 2.1 Höhere Programmiersprachen

Kommunikationsnetze. 2. Direkte TCP/IP-Verbindungen 2.1 Höhere Programmiersprachen Kommunikationsnetze Gliederung 1. Socket-Programmierung unter C 2. Socket-Programmierung unter Java Gliederung Berkeley Sockets (Erste freie TCP/IP-Implementierung in Berkeley UNIX): SOCKET: Erzeugen eines

Mehr

Gepufferte Eingabe und reguläre Ausdrücke 397

Gepufferte Eingabe und reguläre Ausdrücke 397 Gepufferte Eingabe und reguläre Ausdrücke 397 Gepufferte Ein- und Ausgabe ist sinnvoll, um die Zahl der Systemaufrufe zu reduzieren. Standardmäßig wird in C als Lösung hierfür die stdio verwendet. Frage:

Mehr

3. Interrupts. Betriebssysteme I Hochschule München Hans-Georg Eßer SS Foliensatz 3 Interrupts

3. Interrupts. Betriebssysteme I Hochschule München Hans-Georg Eßer SS Foliensatz 3 Interrupts 19 19 22 22 22 22 22 14::18 14:27:41 1::1 1::1 12:46:44 12:46:44 12:48:41 12:54:44 15:27:35 15:27:35 16:37:11 16:37:11 16:38:1 1::1 1::1 17:43:26 17:43:26 17:53:39 18:43:26 19:43:26 1::1 1::1 :: 1::1 1::1

Mehr

FH Ravensburg-Weingarten Schriftlich Prüfung Programmieren

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)

Mehr

Programmieren I. Dateien: Allgemeines. Vorlesung 10. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011

Programmieren I. Dateien: Allgemeines. Vorlesung 10. Handout S. 1. Martin Schultheiß. Hochschule Darmstadt Wintersemester 2010/2011 Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2010/2011 1 / 26 Dateien: Allgemeines Dateien lesen Beispiel: CSV-Daten Filter Ausgabe in Dateien 2 / 26 Dateien: Allgemeines Kaum

Mehr

INE1 Ein-/Ausgabe, Dateien (Files) Einführung Datenstruktur und Operationen Textdateien Binärdateien Standard Streams

INE1 Ein-/Ausgabe, Dateien (Files) Einführung Datenstruktur und Operationen Textdateien Binärdateien Standard Streams INE1 Ein-/Ausgabe, Dateien (Files) Einführung Datenstruktur und Operationen Textdateien Binärdateien Standard Streams Einführung 2 von 42 Einführung Wie kann ein Programm mit seiner Umgebung Information

Mehr

Inhalt Übungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Terminal - historisches (etwas vereinfacht) Seriell. Computer. Netzwerk DFÜ.

Inhalt Ü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

Mehr

Praxis der Programmierung

Praxis der Programmierung Zeichenketten (Strings), Ein- und Ausgabe Institut für Informatik und Computational Science Universität Potsdam Henning Bordihn Einige Folien gehen auf A. Terzibaschian zurück. 1 Zeichenketten (Strings)

Mehr

Tafelübung zu BSRvS 1 6. Sicherheit

Tafelübung zu BSRvS 1 6. Sicherheit Tafelübung zu BSRvS 1 6. Sicherheit 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/ss2009/bsrvs1/

Mehr

1.2 Multiprogramming, Multitasking

1.2 Multiprogramming, Multitasking Kapitel 1 Worum geht es? Es soll beschrieben werden, was die einzelnen Begriffe bedeuten, und wo derartige Konzepte eingesetzt werden. 1.1 Concurrency Concurrency bedeutet, dass etwas gleichzeitig passiert.

Mehr