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

Größe: px
Ab Seite anzeigen:

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

Transkript

1 Dokument: gns_ipc_server.c, 1 - Seite : 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, char *argv[])

2 Dokument: gns_ipc_server.c, 2 - Seite : 1 von 1-1 Header-Dateien einbinden ANSI/POSIX Neutrino eigener Header

3 Dokument: gns_ipc_server.c, 3 - Seite : 1 von 1-2 ANSI/POSIX #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h>

4 Dokument: gns_ipc_server.c, 4 - Seite : 1 von 1-2 Neutrino #include <sys/iofunc.h> #include <sys/dispatch.h>

5 Dokument: gns_ipc_server.c, 5 - Seite : 1 von 1-2 eigener Header #include "gns_ipc.h"

6 Dokument: gns_ipc_server.c, 6 - Seite : 1 von 1-1 int main(int argc, char *argv[]) int main(int argc, char *argv[]) lokale Variablen Globalen Namen registrieren (name_attach(...)) then if ( attach == NULL ) else Fehler name_attach() In einer Endlosschleife Nachrichten von Clients empfangen und Antworten an diese senden

7 Dokument: gns_ipc_server.c, 7 - Seite : 1 von 1-2 lokale Variablen name_attach_t * attach; // Rückgabe von name_attach() int recvid; // Client-ID, die von MsgReceive() zurückgegeben wird struct gns_ipc_message msg; // Nachrichtenpuffer für Kommunikation mit dem Client

8 Dokument: gns_ipc_server.c, 8 - Seite : 1 von 1-2 Globalen Namen registrieren (name_attach(...)) // // Wenn die Flags (3. Parameter) *nicht* NAME_FLAG_ATTACH_GLOBAL enthalten, // dann wird der Name nur auf dem aktuellen Host bekannt gemacht. // attach = name_attach(null, GNS_IPC_GLOBAL_NAME, NAME_FLAG_ATTACH_GLOBAL);

9 Dokument: gns_ipc_server.c, 9 - Seite : 1 von 1-2 Fehler name_attach() perror("*** Fehler: name_attach()"); return EXIT_FAILURE;

10 Dokument: gns_ipc_server.c, 10 - Seite : 1 von 1-2 In einer Endlosschleife Nachrichten von Clients empfangen und Antworten an diese senden while( 1 ) Nachricht (blockierend) empfangen then if ( recvid == -1 ) else Fehlerausgabe, nicht beenden Nachricht bearbeiten

11 Dokument: gns_ipc_server.c, 11 - Seite : 1 von 1-3 Nachricht (blockierend) empfangen recvid = MsgReceive(attach->chid, &msg, sizeof(msg), NULL);

12 Dokument: gns_ipc_server.c, 12 - Seite : 1 von 1-3 Fehlerausgabe, nicht beenden perror("*** Fehler: MsgReceive()");

13 Dokument: gns_ipc_server.c, 13 - Seite : 1 von 1-3 Nachricht bearbeiten then if ( recvid == 0 ) else Pulse-Nachricht andere Nachricht

14 Dokument: gns_ipc_server.c, 14 - Seite : 1 von 1-4 Pulse-Nachricht fprintf(stderr, "Habe eine Pulse-Nachricht empfangen.\n");

15 Dokument: gns_ipc_server.c, 15 - Seite : 1 von 1-4 andere Nachricht // // Da jedes Programm in der Lage ist, eine Verbindung zu diesem Server herzustellen, können // auch beliebige Nachrichten (und Pulses) gesendet werden. Ein name_open() durch den Client sendet // z.b. eine Connect-Nachricht. Diese I/O-Messages müssen herausgefiltert werden, um an die // benutzerdefinierte Nachricht zu gelangen. // then Connect-Nachricht behandeln if ( msg.header.type == _IO_CONNECT ) then if ( (msg.header.type >= _IO_BASE) && (msg.header.type <= _IO_MAX) ) andere I/O-Nachrichten werden ignoriert eigene Nachricht empfangen else else

16 Dokument: gns_ipc_server.c, 16 - Seite : 1 von 1-5 Connect-Nachricht behandeln fprintf(stderr, "Client hat Verbindung aufgenommen.\n"); // // Connnect-Nachrichten müssen beantwortet werden, // da sonst der Client für immer blockiert. // MsgReply(recvid, EOK, NULL, 0);

17 Dokument: gns_ipc_server.c, 17 - Seite : 1 von 1-5 andere I/O-Nachrichten werden ignoriert fprintf(stderr, "Andere I/O-Nachricht empfangen, wird ignoriert!\n"); // // Dem Client mit einer Fehlermeldung antworten, dass // diese I/O-Nachricht nicht unterstützt wird. Andernfalls // würde dieser auf unbestimmte Zeit blockieren. // MsgError(recvid, ENOSYS);

18 Dokument: gns_ipc_server.c, 18 - Seite : 1 von 1-5 eigene Nachricht empfangen Nachricht ausgeben Antwort generieren Antwort senden

19 Dokument: gns_ipc_server.c, 19 - Seite : 1 von 1-6 Nachricht ausgeben fprintf(stderr, "Habe empfangen: \"%s\"\n", msg.mydata);

20 Dokument: gns_ipc_server.c, 20 - Seite : 1 von 1-6 Antwort generieren snprintf(msg.mydata, sizeof(msg.mydata), "Ich bin ein Server mit der PID %d", getpid());

21 Dokument: gns_ipc_server.c, 21 - Seite : 1 von 1-6 Antwort senden if ( MsgReply(recvid, 0, &msg, sizeof(msg)) == -1 ) then else perror("*** Fehler: MsgReply()");

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

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

Eine Mini-Shell als Literate Program

Eine Mini-Shell als Literate Program Eine Mini-Shell als Literate Program Hans-Georg Eßer 16.10.2013 Inhaltsverzeichnis 1 Eine Mini-Shell 1 1.1 Einen Befehl parsen......................... 2 1.2 Was tun mit dem Kommando?...................

Mehr

Probeklausur: BTI2 / Programmieren I Prof. Dr. H. Herold Erlaubte Hilfsmittel: Vorlesungsmitschrift; C-Bücher

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

Mehr

Objektbasierte Entwicklung

Objektbasierte 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

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

10 Die Programmiersprache C99: Zusammenfassung

10 Die Programmiersprache C99: Zusammenfassung 10 Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 25. September 2014, 18:40 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen beim Ansehen der Videos: http://www.j3l7h.de/videos.html

Mehr

Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom Foliensatz 2

Systempraktikum 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

Mehr

Kontextfreie Sprachen Kontextfreie Sprachen und Grammatiken. Satzformen sind die Wörter aus (N T ). Notation: Wir verwenden oft

Kontextfreie 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

Mehr

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free() Übungspaket 29 Dynamische Speicherverwaltung malloc() und free() Übungsziele Skript In diesem Übungspaket üben wir das dynamische Alloziieren 1. und Freigeben von Speicherbereichen 2. von Zeichenketten

Mehr

Probeklausur zu Systemnahe Software II SS 2012 Dr. Andreas Borchert mit Markus Schnalke

Probeklausur zu Systemnahe Software II SS 2012 Dr. Andreas Borchert mit Markus Schnalke Probeklausur zu Systemnahe Software II SS 2012 Dr. Andreas Borchert mit Markus Schnalke 1 Aufgabe 1 (15 Punkte) Prozesse, Signale und Interprozesskommunikation (a) 3 Punkte Was wird von dem folgenden Programm

Mehr

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens Grundlagen von C Jonas Gresens Proseminar C Grundlagen und Konzepte Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität

Mehr

Linux Prinzipien und Programmierung

Linux Prinzipien und Programmierung Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2010/2011 1 / 18 2 / 18 fork und Daten Nach dem fork teilen sich Eltern- und Kindprozess zwar den Programmbereich

Mehr

Themen. Formatierte und unformatierte Eingabe Bedingungsoperator Namespaces Kommandozeilenargumente

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

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

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

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

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

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

Mehr

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012

Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 WS 2011/2012 Fakultät Angewandte Informatik Lehrprofessur für Informatik 23.01.2012 Prof. Dr. Robert Lorenz Musterlösung zur Vorlesung Informatik I, Extrablatt zu komplexen Datenstrukturen Aufgabe 45 **

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

Linux Prinzipien und Programmierung

Linux Prinzipien und Programmierung Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2012/2013 1 / 25 Netzwerkkonfiguration TCP (Forts.) UDP IPC über Unix Domain Sockets 2 / 25 Grundlagen Netzwerk

Mehr

Verwendung Vereinbarung Wert einer Funktion Aufruf einer Funktion Parameter Rekursion. Programmieren in C

Verwendung 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

Mehr

einlesen n > 0? Ausgabe Negative Zahl

einlesen n > 0? Ausgabe Negative Zahl 1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen

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

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

Typ : void* aktuelle Parameter Pointer von beliebigem Typ

Typ : void* aktuelle Parameter Pointer von beliebigem Typ 2. Funktionen - Prototypvereinbarung typangabe funktionsname(parameterliste); - Funktionsdefinition typ funktionsname(parameterliste){ Anweisung - Funktionstyp -> Typ der Funktionswertes zulaessige Typangaben

Mehr

Lösung zur Praktikumsaufgabe 2

Lösung zur Praktikumsaufgabe 2 1. Es gilt Echtzeitsysteme Lösung zur Praktikumsaufgabe 2 Thema: Zeit t = 2ρ t sync. Mit ρ a = 5.7 10 6 und ρ b = 1 10 4 (der Ausdruck parts per million steht für 1 10 6 ) sowie der Zeitspanne 1 a = 31.536.000

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

Theoretische Aspekte

Theoretische Aspekte Webserver mit Win32 API Datum: 04.02.03 Autor: Michael Hielscher Homepage: www.genesis-x7.de Theoretische Aspekte Aufbau eines Webservers Als erstes sollte man im Abschnitt Multithreaded SocketServer nachlesen

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

Threads. Foliensatz 8: Threads Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015

Threads. Foliensatz 8: Threads Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015 Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

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

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

Embedded SQL in PostgreSQL

Embedded SQL in PostgreSQL 7. Dezember 2010 Michael Meskes Seit 1993 Freie Software Seit 1994 Linux Seit 1995 Debian GNU/Linux Seit 1998 PostgreSQL Michael Meskes 1992-1996 Promotion 1996-1998 Projektleiter 1998-2000 Niederlassungsleiter

Mehr

Lesen Sie alle Aufgabenstellungen sorgfältig durch, bevor Sie mit der Bearbeitung der ersten Aufgabe beginnen.

Lesen Sie alle Aufgabenstellungen sorgfältig durch, bevor Sie mit der Bearbeitung der ersten Aufgabe beginnen. INE1 Musteraufgaben für die Semesterendprüfung Hilfsmittel Vier Seiten selbst verfasste Zusammenfassung keine weiteren Hilfsmittel keine elektronischen Hilfsmittel Abgabe Füllen Sie das erste Aufgabenblatt

Mehr

Lösungen der P1-Musterprüfungsaufgaben

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

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

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

Bildverarbeitung mit C++

Bildverarbeitung mit C++ Bildverarbeitung mit C++ Lösung zum Übungsblatt 1 Dr. Stefan Florczyk 2003 // Aufgabe 2 #include #include double factorial(double d) double erg = 1; for (int i = 1; i

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

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff

Programmieren in C. Felder, Schleifen und Fließkommaarithmetik. Prof. Dr. Nikolaus Wulff Programmieren in C Felder, Schleifen und Fließkommaarithmetik Prof. Dr. Nikolaus Wulff Addition von Zahlen 1 2 3 4 5 #include int main() { int x,y,z,sum; x = 1; y = 2; z = 4; sum = x + y + z;

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

Microsoft Visual C++ 6.0

Microsoft Visual C++ 6.0 Hardwareinbindung in Matlab bild = Quickcam; figure;imshow(bildanzeige); MATLAB 6.1 void mexfunction( int nlhs, mxarray *plhs[], int nrhs, const mxarray*prhs[] ) Microsoft Visual C++ 6.0 Aufruf int Capture(unsigned

Mehr

USBCAN.DLL. Manual. Microcomputersysteme. Version 1.2

USBCAN.DLL. Manual. Microcomputersysteme. Version 1.2 USBCAN.DLL Microcomputersysteme Manual Version 1.2 August 2004 Die in diesem Manual verwendeten Beschreibungen für Erzeugnisse, die ein eingetragenes Warenzeichen darstellen können, wurden nicht separat

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

15. C++ vertieft (IV): Ausnahmen (Exceptions)

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

Mehr

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff

Programmieren in C. Funktionen mit Zeigern und Adressen. Prof. Dr. Nikolaus Wulff Programmieren in C Funktionen mit Zeigern und Adressen Prof. Dr. Nikolaus Wulff ByValue versus byreferenz C übergibt immer Kopien der Variablen an Funktionen. Es ist nur dann möglich die Werte von Variablen

Mehr

Erste Schritte der Programmierung in C

Erste Schritte der Programmierung in C Erste Schritte der Programmierung in C C versus C++ Anatomie von C-Programmen für AVR- Mikrocontroller Unterschiede zwischen C++ und C 1 Grundlegende Unterschiede File-Extensions (Header und Quellcode)

Mehr

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

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

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

Praktikum IKT 3. Semester

Praktikum IKT 3. Semester Praktikum IKT 3. Semester Dr. Andreas Müller, TU Chemnitz, Fakultät für Informatik Inhaltsverzeichnis 1 1 Einführung in QT 1.1 Die QT-Bibliothek Informationen: http://www.trolltech.com Lehner, B: KDE-

Mehr

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften

Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Grundlagen der Programmiersprache C für Studierende der Naturwissenschaften Teil 5: Funktionen, Gültigkeitsbereiche und Rekursion Martin Nolte Abteilung für Angewandte Mathematik Universität Freiburg i.

Mehr

C++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek

C++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek C++ - Funktionen und mehr Kerstin Gößner und Ralf Wondratschek Übersicht Deklaration, Definition und Initialisierung Variablen- und Konstantendeklaration Funktionsaufrufe und rückgabewerte Technische Grundlage

Mehr

Die Programmiersprache C99: Zusammenfassung

Die Programmiersprache C99: Zusammenfassung Die Programmiersprache C99: Zusammenfassung Jörn Loviscach Versionsstand: 7. Dezember 2010, 19:30 Die nummerierten Felder sind absichtlich leer, zum Ausfüllen in der Vorlesung. Videos dazu: http://www.youtube.com/joernloviscach

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

Grafische Benutzeroberfläche mit fltk

Grafische Benutzeroberfläche mit fltk Grafische Benutzeroberfläche mit fltk Prof. Dr. Rethmann & Jochen Peters 7. Oktober 2015 Inhaltsverzeichnis 1 Einleitung 2 2 fltk 1.3.x 2 2.1 Installation..................................... 3 2.1.1 Linux....................................

Mehr

PThreads. Pthreads. Jeder Hersteller hatte eine eigene Implementierung von Threads oder light weight processes

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

Mehr

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"

S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort then S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert

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

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6

Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Andre Droschinsky Ingo Schulz Dortmund, den 0. Dezember 2015 Übungen zur Vorlesung EidP (WS 2015/16) Blatt 6 Block rot Es können 4 + 1 Punkte erreicht werden. Abgabedatum: 10. Dezember 2015 2:59 Uhr Hinweise

Mehr

Programmentwicklung mit C++ (unter Unix/Linux)

Programmentwicklung mit C++ (unter Unix/Linux) Programmentwicklung mit C++ (unter Unix/Linux) Erste Schritte Der gcc - Compiler & Linker Organisation des Source-Codes & Libraries Automatische Programmgenerierung: Make Birgit Möller & Denis Williams

Mehr

Bildverarbeitung mit C++

Bildverarbeitung mit C++ Bildverarbeitung mit C++ Lösung zum Übungsblatt 2 Dr. Stefan Florczyk 2003 #include #include class camera char* name; double abmessungen[3]; // Array zum Abspeichern von // Höhe,

Mehr

Prüfung aus PROGRAMMIEREN 3 (SS 2003)

Prüfung aus PROGRAMMIEREN 3 (SS 2003) Fachhochschule München Bereich Datentechnik Fachbereich Elektrotechnik und Informationstechnik R. Thomas Prüfung aus PROGRAMMIEREN 3 (SS 2003) Arbeitszeit 90 Minuten 16.Juli 2003 Beliebige eigene Unterlagen

Mehr

Lösung Übungszettel 6 Aufgabe 1-4

Lösung Übungszettel 6 Aufgabe 1-4 Lösungen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik WS 02/03 AG Betriebssysteme FB3 Kirsten Berkenkötter Lösung Übungszettel 6 Aufgabe 1-4 1 Aufgabe 1 und 2 1.1 Die Bibliothek

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

6.1 Verbindungsorientiert, Verbindunslos

6.1 Verbindungsorientiert, Verbindunslos Kapitel 6 client server Bisher wurden Methoden besprochen, die auf einem Rechner funktionieren. Dabei wurde bei threads bereits wirklich parallel gerechnet, sofern mehrere Prozessoren vorhanden waren.

Mehr

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter});

7 Funktionen. 7.1 Definition. Prototyp-Syntax: {Speicherklasse} {Typ} Name ({formale Parameter}); S. d. I.: Programieren in C Folie 7-1 7 Funktionen 7.1 Definition Prototyp-Syntax: Speicherklasse Typ Name (formale Parameter); der Funktions-Prototyp deklariert eine Funktion, d.h. er enthält noch nicht

Mehr

Übungspaket 13 Der Datentyp double

Übungspaket 13 Der Datentyp double Übungspaket 13 Der Datentyp double Übungsziele: Skript: 1. Umgang mit dem Datentyp double, 2. Deklarationen von double-variablen, 3. double-konstanten 4. und double-rechenoperationen. Kapitel: 32 Semester:

Mehr

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:

Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung: Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang

Mehr

An Open Interface for Network Programming under Microsoft Windows. DI. Dr. Peter René Dietmüller

An Open Interface for Network Programming under Microsoft Windows. DI. Dr. Peter René Dietmüller Windows Sockets An Open Interface for Network Programming under Microsoft Windows DI. Dr. Peter René Dietmüller Institut für Informationsverarbeitung und Mikroprozessortechnik Johannes Kepler Universität

Mehr

Advanced Programming in C

Advanced 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

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

Remote-Compiler Dienst

Remote-Compiler Dienst SS_09 System Programmierung von Bülent Dükel, Umut Demir, Manuel Martinez Idee: User nutzt Compiler auf externer Maschine : (aus Usersicht) User(Client) macht Programmaufruf r emcom I P [ opt ] dat ei.

Mehr

Praktikum 4: Delegation

Praktikum 4: Delegation : Delegation 1. Lernziele Die folgenden, in der Vorlesung behandelten Themen sollen vertieft und angewendet werden: Vererbung, abstrakte Klassen, Polymorphie, Delegation sowie das Zeichnen von UML-Klassendiagrammen.

Mehr

Übung 3.1 - Liste mit Namen/Vornamen

Übung 3.1 - Liste mit Namen/Vornamen Übung 3.1 - Liste mit Namen/Vornamen Schreiben Sie ein Programm, welches in einer einfach verketteten Liste eine beliebige Anzahl von Namen/Vornamen festhält. Allozieren Sie den Speicherplatz für Ihre

Mehr

3 Nameserver Registrieren, Abfragen und Ändern eines Nameserver(Host)-Handles

3 Nameserver Registrieren, Abfragen und Ändern eines Nameserver(Host)-Handles 1. Allgemeines Über die SGAP-Schnittstelle lassen sich folgende Anträge stellen: 1 Person(Contact)-Handle Registrieren, Abfragen und Ändern eines Contact-Handles. 2 Domain-Name Registrieren, Abfragen,

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

Programmiersprachen Einführung in C

Programmiersprachen Einführung in C Programmiersprachen Einführung in C 14 Vertiefung einiger Themen Prof. Dr. Gliederung Programmiersprachen 1. Von der Maschinensprache zu C 2. Die Struktur von C-Programmen 3. Variable und Datentypen in

Mehr

Timm M. Steinbeck und Arne Wiebalck Lehrstuhl für Technische Informatik Universität Heidelberg. Prozess-Monitoring auf CPU-Takt Ebene

Timm M. Steinbeck und Arne Wiebalck Lehrstuhl für Technische Informatik Universität Heidelberg. Prozess-Monitoring auf CPU-Takt Ebene Timm M. Steinbeck und Arne Wiebalck Lehrstuhl für Technische Informatik Universität Heidelberg Prozess-Monitoring auf CPU-Takt Ebene Einleitung Unser Arbeitsgebiet: ALICE Teilchenphysik Experiment Cluster

Mehr

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt

Klassen und Objekte. Klassen sind Vorlagen für Objekte. Objekte haben. Attribute. Konstruktoren. Methoden. Merkblatt Klassen und Objekte Klassen sind Vorlagen für Objekte. Objekte haben Attribute Konstruktoren Methoden Aus einer Klasse kann man beliebig viele Objekte herstellen. Attribute bestimmen die Eigenschaften

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

Prüfung Betriebssysteme 1

Prüfung Betriebssysteme 1 Prüfung Betriebssysteme 1 Hinweise: Die Klausur umfasst 8 Aufgaben auf 5 Seiten. Die Arbeitszeit beträgt 90 Minuten. Bitte notieren Sie auf jedem abgegebenen Blatt Ihren Namen und Ihre Matrikelnummer!

Mehr

Übung zu Grundlagen der Betriebssysteme. 3. Übung 30.10.2012

Übung zu Grundlagen der Betriebssysteme. 3. Übung 30.10.2012 Übung zu Grundlagen der Betriebssysteme 3. Übung 30.10.2012 Aufgabe 1 Schließen Sie sich über die URL http://userpages.uni-koblenz.de/~mips/bs/anmeldung/ Bearbeitungsgruppen bestehend aus 3 Teilnehmern

Mehr

Der Goopax Compiler GPU-Programmierung in C++ ZKI AK-Supercomputing, Münster, 27.03.2014, Ingo Josopait

Der Goopax Compiler GPU-Programmierung in C++ ZKI AK-Supercomputing, Münster, 27.03.2014, Ingo Josopait Der Goopax Compiler GPU-Programmierung in C++ AMD R9 290X: 5.6 TFLOPS (SP MulAdd) Programmierung ~10000 Threads Entwicklungsumgebungen Entwicklungsumgebungen CUDA, OpenCL Compiler: kernel GPU Maschinencode

Mehr

QuickC - Schnellkurs in C

QuickC - Schnellkurs in C QuickC - Schnellkurs in C Allgemeines C ist eine kurze, aber sehr mächtige Programmiersprache. Sie wurde ursprünglich dafür entwickelt, UNIX zu schreiben. Sie ist sehr hardware-nah und wird deshalb heute

Mehr

Spezifikation lexikalischer Einheiten (Token) als reguläre Ausdrücke in einer Lexer-Spezifikationsdatei (z.b. tiger.lex) Übersetzen nach lex.yy.

Spezifikation lexikalischer Einheiten (Token) als reguläre Ausdrücke in einer Lexer-Spezifikationsdatei (z.b. tiger.lex) Übersetzen nach lex.yy. BISON - Einleitung bison ist ein Programmgenerator, welches ein C oder C++ Programm erzeugt, dass die syntaktische Analyse eines Tokenstroms durchführt Vorgehensweise bie der Erstellung eines Parsers mit

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

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

Informatik I Programmieren in C

Informatik 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

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

Mehr

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)

Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl

Mehr

DAP2-Programmierpraktikum Einführung in C++ (Teil 1)

DAP2-Programmierpraktikum Einführung in C++ (Teil 1) DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume

Mehr

Paralleles Rechnen II: PVM Programmierung. Markus Dahms (dahms@fh brandenburg.de) 27.10.2004

Paralleles Rechnen II: PVM Programmierung. Markus Dahms (dahms@fh brandenburg.de) 27.10.2004 Paralleles Rechnen II: PVM Programmierung Markus Dahms (dahms@fh brandenburg.de) 27.10.2004 Agenda PVM allgemein Grundstruktur paralleles Programm Einführung PVM API Initialisierung & Fehlerbehandlung

Mehr

Nachname:... Vorname:... MatrNr.:... Klausur PR2. int main() { char Text[] = "Sehr geehrte Damen und Herren!"; char *tmp=text;

Nachname:... Vorname:... MatrNr.:... Klausur PR2. int main() { char Text[] = Sehr geehrte Damen und Herren!; char *tmp=text; Nachname:... Vorname:... MatrNr.:... Klausur PR2 HAW-Hamburg, Fakultät Technik und Informatik, Department Informations- und Elektrotechnik Dr. Robert Heß, 26.1.2009 Bearbeitungsdauer: 90 min Hilfsmittel:

Mehr

Zeichenketten (1) Literale von Zeichenketten werden in doppelte Anführungszeichen gesetzt

Zeichenketten (1) Literale von Zeichenketten werden in doppelte Anführungszeichen gesetzt Zeichenketten (1) Literale Literale von Zeichenketten werden in doppelte Anführungszeichen gesetzt "Hallo Welt" Mehrere solcher Literale gelten als eine Zeichenkette, wenn sie nur durch Whitespaces (Leerzeichen,

Mehr

Einführung in die Systemprogrammierung unter Linux

Einführung in die Systemprogrammierung unter Linux Einführung in die Systemprogrammierung unter Linux Systemsoftware Praktikum Inhalt Übersicht über benötigte Systemfunktionen Programmieren unter Linux Grundlegendes Message-Queue Shared Memory Semaphore

Mehr

Aufgaben zur IA32-Assembler-Programmierung

Aufgaben zur IA32-Assembler-Programmierung Aufgaben zur IA32-Assembler-Programmierung Prof. Dr. Ralf Möller AG Technische Informatik Technische Fakultät Universität Bielefeld www.ti.uni-bielefeld.de Version 1.22 vom 8. August 2017, WS 2017/18 Insgesamt

Mehr