File I/O mit CRTL unter OpenVMS
|
|
- Axel Wolf
- vor 5 Jahren
- Abrufe
Transkript
1 DECUS München Symposium - Bonn File I/O mit CRTL unter OpenVMS Hartmut Becker März 2000 Seite 1
2 Themen Die Aufgabe Den Durchsatz erhöhen Die Feinheiten File I/O mit CRTL unter OpenVMS Seite 2
3 Die Aufgabe Ein Beipiel aus dem realen Leben: fh = fopen (filname, AccessMap[accessType]); wobei AccessMap[ReadOnly] = "r"; AccessMap[ReadWrite] = "r+"; AccessMap[Append] = "a"; AccessMap[Rewrite] = "r+"; AccessMap[ReadAll] = "r"; AccessMap[ReadOnlyTransparent] = "rb"; AccessMap[AppendTransparent] = "ab"; AccessMap[Create] = "a"; File I/O mit CRTL unter OpenVMS Seite 3
4 Die Aufgabe... Ist das portierbar auf OpenVMS? Ist es wirklich so harmlos, wie es aussieht? File I/O mit CRTL unter OpenVMS Seite 4
5 Die Aufgabe... Sicher ist das portierbar, aber wie wird das Codefragment benutzt: Prozeß A fopen("log", Append); Prozeß B fopen("log", ReadOnly); Kein Problem unter UNIX (wirklich nicht?) Aber so einfach geht s nicht unter OpenVMS: fopen: non-translatable vms error code: 0x1828A %rms-e-flk, file currently locked by another user File I/O mit CRTL unter OpenVMS Seite 5
6 Die Aufgabe... Wo wird File sharing gemacht? - keine Funktionalität von ANSI I/O - keine Funktionalität von UNIX I/O - bei VMS macht es RMS mit Record locking - bei UNIX macht es das File system Folglich muß bei VMS RMS Record I/O mit File shareing (damit Locking) erzwungen werden - voreingestellt in der CRTL ist Block I/O File I/O mit CRTL unter OpenVMS Seite 6
7 Die Aufgabe... Sicher war das portierbar, das Codefragment sieht jetzt so aus Prozeß A Prozeß B fopen("log", Append, fopen("log", ReadOnly, "ctx=rec", "ctx=rec", "shr=get"); "shr=get,put,upd"); Das war s, oder? File I/O mit CRTL unter OpenVMS Seite 7
8 Den Durchsatz erhöhen Noch nicht ganz... plötzlich wird die Applikation unheimlich zäh und träge, was ist passiert? - ANSI I/O unter VMS ist nicht mehr gepuffert * mindestens jeder fwrite() geht an RMS * ist in den Daten \n enthalten so sind s mehr - Standard RMS Record I/O schreibt jeden Satz auf die Platte - ANSI I/O unter UNIX puffert noch immer - UNIX Buffer cache puffert noch immer File I/O mit CRTL unter OpenVMS Seite 8
9 Den Durchsatz erhöhen... Welche Rolle spielen Puffer? - wo gibt es Puffer * im Prozeß, verwaltet von CRTL/libc bei ANSI I/O * in Prozessen, verwaltet von RMS * im System, verwaltet von VIOC/Buffer cache File I/O mit CRTL unter OpenVMS Seite 9
10 Den Durchsatz erhöhen... damit Daten über Prozeßgrenzen hinaus sichtbar werden, müssen die ANSI I/O-Puffer geleert werden: fflush() - bei VMS müssen sie hier nach RMS (egal, ob dort gepuffert wird oder nicht) - bei Unix in das File system (egal, ob dort gepuffert oder nicht) File I/O mit CRTL unter OpenVMS Seite 10
11 Den Durchsatz erhöhen... Hmm, haben wir jetzt die Semantik geändert? - ja! - jeder RMS Record ist jetzt sichtbar - der Teil eines Ausgabedatenstroms sein kann - sollte nichts ändern, oder? File I/O mit CRTL unter OpenVMS Seite 11
12 Den Durchsatz erhöhen... Machen wir s schneller Prozeß A Prozeß B fopen("log", Append, fopen("log", ReadOnly, "ctx=rec", "ctx=rec", "shr=get", "shr=get,put,upd"); "fop=dfw", "alq=500", "deq=500"); File I/O mit CRTL unter OpenVMS Seite 12
13 Den Durchsatz erhöhen... Sharing: ok Schreibleistung ohne gleichzeitigen Leser: optimal Schreibleistung mit gleichzeitigem Leser: es kommt drauf an. - Daten müssen auf die Platte oder in einem Global buffer gehalten werden - Global buffer lohnt sich nur, wenn in der Relation zum Schreiben viel gelesen wird File I/O mit CRTL unter OpenVMS Seite 13
14 Den Durchsatz erhöhen... Schneller Schreiber, lahmer Leser: keine Global buffers Lahmer Schreiber, viele lahme Leser: Global buffers Lahmer Schreiber, schneller Leser(?): Global buffers File I/O mit CRTL unter OpenVMS Seite 14
15 Die Feinheiten So weit, so gut, aber... wir hatten die Semantik geändert, was wenn noch jemand schreibt? Prozeß A Prozeß AA fopen("log", Append, fopen("log", Append, "ctx=rec", "ctx=rec", "shr=get,put,upd", "shr=get,put,upd" "fop=dfw", "alq=500", "fop=dfw", "alq=500", "deq=500"); "deq=500"); File I/O mit CRTL unter OpenVMS Seite 15
16 Die Feinheiten... Prozeß A Prozeß AA fwrite (..."hello\nworld"...) fwrite(..."hello\neurope"...) => hello hello Europe World File I/O mit CRTL unter OpenVMS Seite 16
17 Die Feinheiten... Trickserei Prozeß A Prozeß AA fopen("log", Append, fopen("log", Append, "ctx=rec,bin", "ctx=rec,bin", "shr=get,put,upd", "shr=get,put,upd" "fop=dfw", "alq=500", "fop=dfw", "alq=500", "deq=500"); "deq=500"); fwrite (..."hello\nworld"...) fwrite(..."hello\neurope"...) Beim Schreiben werden die Daten von fwrite() wie ein Satz behandelt, beim Lesen sind es jeweils 2 Sätze. File I/O mit CRTL unter OpenVMS Seite 17
18 Die Feinheiten... Warum eigentlich nicht rfm=var? Der Leser soll im Datenstrom positionieren können - fseek() geht nur im Stream mode Und wenn nun der Schreiber auch noch positionieren und dort schreiben soll? - z.b. wurden die gleichen fopen() dafür benutzt - nun werden unter VMS aber standardmäßig beim Lesen die Records exklusiv gelockt, es kommt zu Konflikten File I/O mit CRTL unter OpenVMS Seite 18
19 Die Feinheiten... mehr Trickserei Prozeß A Prozeß B fopen("log", ReadWrite, fopen("log", ReadOnly, "ctx=rec,bin", "ctx=rec", "shr=get", "shr=get,put,upd" "rop=rlk", "rop=nlk"); "fop=dfw", "alq=500", "deq=500"); File I/O mit CRTL unter OpenVMS Seite 19
20 Die Feinheiten... Wunderbar, die Datei wurde geschrieben, man kann sie mit dem EDT anschauen, und verändern und alles ist bestens, es sei denn... - neu angelegte Dateien von EDT, EDIT/TPU haben rfm=var - das Record format sollte beim Öffnen überprüft werden - ggf. konvertieren File I/O mit CRTL unter OpenVMS Seite 20
21 Die Feinheiten... #include <stdio.h> #include <stdlib.h> #include <string.h> #include <rms.h> static int beforefopen (struct FAB**, struct FAB *, struct RAB *); int main (int argc, char *argv[]) { FILE *fd; struct FAB* f= NULL; if (argc==1) return fprintf (stderr, "usage: %s file\n", argv[0]), EXIT_FAILURE fd= fopen(argv[1],"a+", "acc", beforefopen, &f); if (FAB$C_STMLF!=f->fab$b_rfm) { fprintf (stderr, "-w-wrf, %s, wrong record format, " "not Stream_Lf\n", argv[1]); return EXIT_FAILURE; } File I/O mit CRTL unter OpenVMS Seite 21
22 Die Feinheiten... } fclose (fd); static int beforefopen (struct FAB **f, struct FAB *fab, struct RAB *rab) { *f= fab; return EXIT_SUCCESS; } File I/O mit CRTL unter OpenVMS Seite 22
23 Die Feinheiten... War s das nun? Nein, jetzt das Ganze noch einmal, aber mit binären Daten... - ctx=rec und Stream_Lf geht nicht mehr * im ASCII mode ist \n erwünscht, enthält die Struktur * fread() bekommt es geliefert. * im Binär mode gehört es nicht zu den Daten * fread() bekommt es nicht geliefert - Ausweg rfm=udf File I/O mit CRTL unter OpenVMS Seite 23
24 Die Feinheiten... noch mehr Trickserei Prozeß A Prozeß B fopen("log", fopen("log", AppendTransparent, ReadOnlyTransparent, "ctx=rec", "ctx=rec", "shr=get", "shr=get,put,upd" "rfm=udf", "rop=rlk", "rfm=udf", "rop=nlk"); "fop=dfw", "alq=500", "deq=500"); File I/O mit CRTL unter OpenVMS Seite 24
25 Die Feinheiten... Sharing: ok - die Daten eines fwrite() sind ein Record - ebenso die Daten eines fread() Leider nicht mehr editierbar (ansonsten wäre es DIE Lösung) File I/O mit CRTL unter OpenVMS Seite 25
26 Zusammenfassung Das war s aber nun wirklich, nur, aus einem kurzen Unix Code Stück wurde ein größeres Case statement, aber, nur eine lokale Änderung (!) keine RMS-Aufrufe, transparent gegenüber übergeordneter Software File I/O mit CRTL unter OpenVMS Seite 26
27 Zusammenfassung Application ANSI I/O UNIX I/O RMS Block I/O Record I/O Block I/O Files File I/O mit CRTL unter OpenVMS Seite 27
28 ? File I/O mit CRTL unter OpenVMS Seite 28
Ein-/Ausgabe, Dateisystem. Kapitel 9: Ein-/Ausgabe. Programmieren in C für Elektrotechniker. Programmieren in C. Dateisystem. Programmieren in C
für Elektrotechniker Kapitel 9: Dateisystem, Dateisystem E/A-Konzept in UNIX und C UNIX (und damit auch C) verwendet Datenströme (streams) als Konzept zur Verbindung von Programmen mit E/A-Geräten und
MehrDateien (1) Datenströme
Dateien (1) Datenströme Standardbibliothek bietet sogenannte Datenströme (engl. Streams) Objekte, in die Informationen geschrieben oder von denen Daten gelesen werden können Zum Arbeiten mit Dateien benötigt
MehrBeispiel / Übung: Prof. Dr. A. Christidis WS 2012/13
Beispiel / Übung: Erstellen Sie ein kurzes, plattform-unabhängiges C-Programm ( Konsolenanwendung ), das sich in die Reihe bereits gestarteter Kopien einordnet, sich nach 20 sec (Rechenzeit) abmeldet und
MehrLinux. 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:
MehrLinux. 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
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
MehrDateien. INE2 M. Thaler, Office TG208. ZHAW, M. Thaler, K. Rege, G. Burkert
Dateien INE2 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 - Kanäle bzw.
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
MehrMichael Dienert. 8. Dezember 2016
C für Unverdrossene Michael Dienert 8. Dezember 2016 Vorbemerkung Natürlich könnte ich als erstes C-Programm Hello World nehmen. Um mit dem Kompiler zu spielen, kann man aber auch gleich einen sinnvolleren
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
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,
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!
MehrInput, Output, Dateien
Input, Output, Dateien C-Kurs 2013, 1. Tutorium Armelle Vérité http://wiki.freitagsrunde.org 8. September 2013 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License. 1 / 21
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 // ==
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
MehrProgrammieren in C++
Programmieren in C++ SS 2012 Vorlesung 7, Dienstag 19. Juni 2012 (Eingabe/Ausgabe, Optionen, ASSERT_DEATH) Prof. Dr. Hannah Bast Lehrstuhl für Algorithmen und Datenstrukturen Institut für Informatik Universität
MehrÜbung zu Grundlagen der Betriebssysteme. 2. Übung
Übung zu Grundlagen der Betriebssysteme 2. Übung 23.10.2012 Termine Übungen 1. Übungsblatt http://userpages.uni-koblenz.de/~mips/bs/uebung/ https://svn.uni-koblenz.de/mips/bs/wise2012/exercises/ Abgabe:
MehrNachdem die VM gestartet ist und sich darin angemeldet wurde, starten wir Eclipse.
Starten der Umgebung Nachdem die VM gestartet ist und sich darin angemeldet wurde, starten wir Eclipse. Wir wählen links ein Projekt aus öffnen dann unser Projekt und dort das Programm intro.c Sicherheitshalber
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
Mehr1 Prozesse und Scheduling (12 Punkte)
1 Prozesse und Scheduling (12 Punkte) a) UNIX Shell-Operatoren (insgesamt 4 Punkte) 1. Operator (1,5 Punkte) Beschreiben Sie die Funktionsweise des Operators. 2. Operator Beispiel (1 Punkt) Geben Sie für
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
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[])
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
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
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)
MehrUlrich Stein
Von C nach MATLAB Einführung in MATLAB für Personen mit C-Kenntnissen Datentypen ähnlich in C und MATLAB, dort aber automatische Typzuweisung möglich double a = 2; Arrays a = double( 2 ); aber auch a =
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
MehrAusgewählte Bibliotheksfunktionen
Ausgewählte Bibliotheksfunktionen fopen überträgt den Inhalt des Dateipuffers: Schreibmodus: Dateipuffer wird geschrieben Lesemodus: Puffer wird geleert if (fflush(fp) == EOF) printf("puffer nicht geschrieben\n");
MehrProgrammiersprachen 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
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
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
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
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
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
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
MehrNetzwerksicherheit 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
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/
Mehr! "eine Zeichenkette\nmit Doppelapostroph \" und Backslash \\"
1.2. Datentypen Zeichenketten: Zeichenkettenliterale wie»üblich«"eine Zeichenkette\nmit Doppelapostroph \" und Backslash \\" werden als 0-terminierte char-felder realisiert char* hello = "Hello, World";
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);
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
Mehr8. Arbeiten mit Dateien
8. Arbeiten mit Dateien www.c-programme.de Stefan Thiemert Kapitel 8 - Seite 1 von 6 8. 1. Allgemeines Bisher haben wir Daten, die wir in unseren Programmen erzeugt und verarbeitet haben, nur über den
MehrVorlesungsprüfung Programmiersprache 1
Vorlesungsprüfung Programmiersprache 1 Termin der Prüfung: 1) Di 20.03.2018 16:15 17:00 HSB 3 2) Di 15.05.2018 16:15 17:00 HSB 3 3) Di 12.06.2018 16:15 17:00 HSB 3 Stoffgebiete: 1) Ganzzahltypen: char,
MehrTI III: Operating and Communication. WS 2008/09 Übungsblatt Nr. 1
TI III: Operating and Communication Systems WS 2008/09 Übungsblatt Nr. 1 Georg Wittenburg, M.Sc., AG Technische Informatik, Freie Universität Berlin 1. Aufgabe: Begriffe (8 Punkte) Beschreiben Sie jeden
Mehrhigh level I/O/ low level I/O
Dateiarbeit in C Datei(engl. File) ist ein Menge von Daten (Bytes) auf einem geeigneten Datenträger. Festplatte USB-Stick Früher: Magnetband, Lochband, Lochkartenstapel, Diskette Eine Datei enthält Daten
MehrZusammenfassung 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
MehrProgrammierkurs Kapitel 4: Dateien Seite 1. Verwaltungfeld im Speicher. 4.1 Alternativen zur Programmierung der Eingabe und der Ausgabe
Programmierkurs Kapitel 4: Dateien Seite 1 4 Dateien Verwaltungfeld im Speicher Dateivariable im Programm Dateizeiger Schreib-/Lesefeld im Programm EOF 4.1 Alternativen zur Programmierung der Eingabe und
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
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
MehrEinteilung 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
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,
MehrOrganisatorisches. Übungsleiter: Karsten Otto Homepage: Aufgaben
Organisatorisches Übungsleiter: Karsten Otto (otto@inf.fu-berlin.de) Homepage: http://www.inf.fu-berlin.de/lehre/ss04/sysi/ Aufgaben Montags im Netz Vorbesprechung Dienstag/Mittwoch in den Übungen Abgabe
MehrExploit-Entwicklung mit Python
Penetration Testing III Bachelor in Computer Science (BCS) 6. Semester Exploit-Entwicklung mit Python von Daniel Baier und Demian Rosenkranz 1 / 20 Gliederung Grundlagen Sicherheitslücken Prozess- und
MehrProgrammieren 1 C Überblick
Programmieren 1 C Überblick 1. Einleitung 2. Graphische Darstellung von Algorithmen 3. Syntax und Semantik 4. Einstieg in C: Einfache Sprachkonstrukte und allgemeiner Programmaufbau 5. Skalare Standarddatentypen
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
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
MehrProgrammierung 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
Mehr6.2 Extras/Lesen aus Dateien
6.2 Extras/Lesen aus Dateien 6.2.1 Problem Aus einer Datei sollen Spannungswerte eingelesen werden. Anschließend sollen Anzahl, Minimum, Maximum, AMW und Standardabweichung ermittelt und ausgegeben werden.
Mehr0. Einführung & Motivation
0. Einführung & Motivation Ansatz: "C++ für Java-Kenner" Konzentration auf semantische Unterschiede 'gleichartiger' Konzepte Erörterung der C++ -spezifischen Konzepte (Overloading, Templates) Anspruch
MehrArrays (Felder) int arrayname[n]; F. Uhlig Computergrundlagen 37/63
Arrays (Felder) int arrayname[n]; Ein Array dient zur Speicherung größerer Datenmengen des gleichen Datentyps Arrays werden mit eckigen Klammern indiziert Um auf ein einzelnes Element zuzugreifen, ist
MehrC Überlebenstraining
C Überlebenstraining Dies ist nur ein Schnellkurs in C, der genug Einstiegswissen vermitteln soll, daß weiterführende Literatur schnell benutzt werden kann. Dies ist kein vollständiger Programmier oder
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)
MehrC-Kurs 2011: Arrays, Strings, Pointer
C-Kurs 2011: Arrays, Strings, Pointer Sebastian@Pipping.org 15. September 2011 v3.0.33 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License. Ohne Pointer geht nichts. 2 Pointer
MehrÜbungsbesprechung Blatt 3 Vorlesung Betriebssysteme I (WS 2018/19) Operating Systems And Middleware Group
Übungsbesprechung Blatt 3 Vorlesung Betriebssysteme I (WS 2018/19) Operating Systems And Middleware Group 0. Zur Aufgabe 4 Was macht eine Shell? date wc Chart 2 Prozesserzeugung Chart 3 1. Prozesserzeugung
MehrVerwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C
Übersicht Funktionen Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion Sinn von Funktionen Wiederverwendung häufig verwendeter nicht banaler Programmteile Wiederverwendung
MehrEinführung in die Programmierung für Physiker. Die Programmiersprache C Ein- und Ausgabe
Einführung in die Programmierung für Physiker Die Programmiersprache C Ein- und Ausgabe Marc Wagner Institut für theoretische Physik Johann Wolfgang Goethe-Universität Frankfurt am Main WS 2017/18 putchar,
MehrINE1 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
MehrC-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Übungspaket 10 Fallunterscheidungen
Übungspaket 10 Fallunterscheidungen Übungsziele: Skript: 1. Umgang mit der einfachen Fallunterscheidung, 2. sowie mehrfachen Fallunterscheidung und 3. problemangepasster Auswahl Kapitel: 24 und 25 Semester:
MehrMercury PIE Plugin Interface Dokumentation. Version: 1.1 Datum: Verfasser: G.Trietsch. docuform GmbH, Karlsruhe, Germany
Version: 1.1 Datum: 12.07.2005 Verfasser: G.Trietsch 1. Das PIE Interface Mercury bietet mit der PI-Emulation (Program Interface Emulation) die Möglichkeit, eigene Funktionen in die Mercury-Architektur
MehrRMS-Tuning nach 4 Jahren
RMS-Tuning nach 4 Jahren DB-Admin für RMS? Na Klar! Der Erfolg gab uns Recht TK Performance Kunde / Benutzer Software Entwickler Generalunternehmer Systemmanagement Applikations Support Ludolf.Treiber@t-systems.com
Mehreinlesen 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
MehrG 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
Mehr8. Strukturen und Dateien Strukturen und Dateien
Strukturen und Dateien 8-1 Strukturierte Datenobjekte, die in C zur Verfügung stehen, heißen Strukturen (records) und Unions Definition: Eine Struktur (struct) implementiert ein heterogenes Feld, das aus
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
MehrProbeklausur 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
Mehr1.4. Funktionen. Objektorientierte Programmierung mit C++
mehrfache Deklarationen sind erlaubt für jede Funktion muss es (GENAU) eine Definition geben, ansonsten linker error [the one definition rule ODR] Deklarationen in *.h - Files, Definitionen in *.cpp -
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der
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
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/
MehrLö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
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 9 I/O (2) Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät UNIX I/O UNIX I/O: ähnlich wie Standard-I/O, jedoch File-Deskriptoren
MehrAufgabenblatt 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
Mehr15. C++ vertieft (IV): Ausnahmen (Exceptions)
Was kann schon schiefgehen? Öffnen einer Datei zum Lesen oder Schreiben std::ifstream input("myfile.txt"); 15. C++ vertieft (IV): Ausnahmen (Exceptions) Parsing int value = std::stoi("12 8"); Speicherallokation
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
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
MehrKontextfreie Sprachen Kontextfreie Sprachen und Grammatiken. Satzformen sind die Wörter aus (N T ). Notation: Wir verwenden oft
und Grammatiken (Folie 119, eite 202 im kript) atzformen sind die Wörter aus (N T ). Notation: Wir verwenden oft a, b, c,... für Terminalsymbole A, B, C,... für Nonterminale u, v, w,... für Terminalwörter
Mehrc PROGRAMMIEREN Ein Kurs zum Selbststudium mit Musterlösungen Guido Krüger ADDISON-WESLEY PUBLISHING COMPANY
Guido Krüger c PROGRAMMIEREN Ein Kurs zum Selbststudium mit Musterlösungen ADDISON-WESLEY PUBLISHING COMPANY Bonn München Paris Reading, Massachusetts Menlo Park, California New York Don Mills, Ontario
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
MehrPhysische 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 =
MehrLösungen der P1-Musterprüfungsaufgaben
Lösungen der P1-Musterprüfungsaufgaben 7.6.2012 Textformatierung Eine Textdatei wird eingelesen, aufeinander folgende White-space-Zeichen werden zu einem zusammengefasst, die Zeilenlänge wird angepasst
MehrInhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling
Input / Output in C, C++ Inhalt Streams Eingabe / Ausgbe in C Dateizugriff in C Eingabe / Ausgabe in C++ Dateizugriff in C++ Error Handling Page 1 Ausgaben in C,C++ - generell Fuer C basierte Ausgaben:
MehrProbeklausur: BTI2 / Programmieren I Prof. Dr. H. Herold Erlaubte Hilfsmittel: Vorlesungsmitschrift; C-Bücher
Probeklausur: BTI2 / Programmieren I Prüfer Prof. Dr. H. Herold Erlaubte Hilfsmittel: Vorlesungsmitschrift; C-Bücher 1. Aufgabe Was gibt das im folgenden angegebene Programm bei seiner Ausführung auf den
MehrObjektbasierte Entwicklung
Embedded Software Objektbasierte Entwicklung Objektorientierung in C? Prof. Dr. Nikolaus Wulff Objektbasiert entwickeln Ohne C++ wird meist C im alten Stil programmiert. => Ein endlose while-schleife mit
MehrBeispiel 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
MehrThemen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente
Themen Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente Formatierte Eingabe mit cin Die Formatierung der Eingabe ist der Ausgabe sehr ähnlich: Die Flags werden
Mehr