Zusätzliche Unterlagen

Ähnliche Dokumente
Qt-Projekte mit Visual Studio 2005

Werkzeuge der Informatik UNIX

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Es sollte die MS-DOS Eingabeaufforderung starten. Geben Sie nun den Befehl javac ein.

Professionelle Seminare im Bereich MS-Office

Standard Daten-Backup-Script

Patch Management mit

Firewalls für Lexware Info Service konfigurieren

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Python Installation. 1 Vorbereitung. 1.1 Download. Diese Anleitung ist für Windows ausgelegt.

Backup der Progress Datenbank

Task: Nmap Skripte ausführen

Abamsoft Finos im Zusammenspiel mit shop to date von DATA BECKER

Installation der SAS Foundation Software auf Windows

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Dokumentation zum Spielserver der Software Challenge

Web-Kürzel. Krishna Tateneni Yves Arrouye Deutsche Übersetzung: Stefan Winter

tentoinfinity Apps 1.0 EINFÜHRUNG

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

PC-Kaufmann 2014 Neues Buchungsjahr anlegen

Version 0.3. Installation von MinGW und Eclipse CDT

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

Kurzeinführung Excel2App. Version 1.0.0

Beispiel Shop-Eintrag Ladenlokal & Online-Shop im Verzeichnis 1

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Übung: Verwendung von Java-Threads

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Anleitung zum erfassen von Last Minute Angeboten und Stellenangebote

Excel Funktionen durch eigene Funktionen erweitern.

Handbuch zur Anlage von Turnieren auf der NÖEV-Homepage

Firewalls für Lexware Info Service konfigurieren

Windows 8. Der Task-Manager. Dieses Dokument kann frei verwendet werden. Keine Lizenzen, kein Copyright. Do what you want with it.

Inhalt... 1 Einleitung... 1 Systemanforderungen... 1 Software Download... 1 Prüfdokumentation... 4 Probleme... 5 Hintergrund... 5

Programmierung von Konturzügen aus Geraden und Kreisbögen

Windows. Workshop Internet-Explorer: Arbeiten mit Favoriten, Teil 1

Anleitung ftp-zugang Horn Druck & Verlag GmbH Bruchsal

- Öffnen Sie Ihren Internet-Browser und geben Sie nacheinander folgende Adressen ein:

Informatik I Tutorial

Suche schlecht beschriftete Bilder mit Eigenen Abfragen

Automatische Installation (wenn das SSO-Applet nicht vorhanden ist)! Abbildung 1:Auswahldialog für Installationslaufwerk

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

Berichte über Stammdaten Klassen

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

Log xmllog textlog Log() start(filename) add(message) end() instance() Abbildung 7-10: Die Protokollierungs-API mit einer einfachen Fassade

Artikel Schnittstelle über CSV

Meldung Lokale Anwendung inkompatibel oder Microsoft Silverlight ist nicht aktuell bei Anmeldung an lokal gespeicherter RWE SmartHome Anwendung

1. Allgemeines. Mit der Vertragsverwaltung können u.a.

Internet Explorer Version 6

Anwendungsbeispiele Buchhaltung

Variablen & erweiterte Aktionen nutzen

MSK 120 ( ) auf MSK 120/CO ( )

Anleitung für die Lohnmeldung via ELM-Standard mittels PartnerWeb

GS-Programme 2015 Allgemeines Zentralupdate

X Anmelden am System. X System herunterfahren. X Grundlegendes zur Shell. X Das Hilfesystem. X Dateioperationen. X Bewegen im Verzeichnisbaum

Stud.IP. Inhalt. Rechenzentrum. Vorgehen zur Eintragung in Veranstaltungen / Gruppen. Stand: Januar 2015

Kompilieren und Linken

Druck von bzw. Scan auf USB-Stick

OP-LOG

Das Handbuch zu KSystemLog. Nicolas Ternisien

Anleitung zur Bearbeitung von Prüferkommentaren in der Nachreichung

Eintritt in den virtuellen Seminarraum 2. Virtueller Seminarraum 3. Menüleiste 4. Teilnehmerliste 4. Chatbereich 4. Wortmeldung 5

Inhalt. 1 Einleitung AUTOMATISCHE DATENSICHERUNG AUF EINEN CLOUDSPEICHER

Diese Ansicht erhalten Sie nach der erfolgreichen Anmeldung bei Wordpress.

Übersichtlichkeit im Dokumentenmanagement

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG

Der einfache Weg zum CFX-Demokonto

Carolo Knowledge Base

Gibt Daten im erweiterten Format aus. Dies beinhaltet die Angabe von Zugriffsrechten, Besitzer, Länge, Zeitpunkt der letzten Änderung und mehr.

Erstellen von x-y-diagrammen in OpenOffice.calc

Um zu prüfen welche Version auf dem betroffenen Client enthalten ist, gehen Sie bitte wie folgt vor:

Benutzerdokumentation Hosted Backup Cloud Access

MetaQuotes Empfehlungen zum Gebrauch von

Internet online Update (Internet Explorer)

FORUM HANDREICHUNG (STAND: AUGUST 2013)

Installationshinweise BEFU 2014

Tipps und Tricks zu Netop Vision und Vision Pro

Anleitung für die Teilnahme an den Platzvergaben "Studio II, Studio IV und Studio VI" im Studiengang Bachelor Architektur SS15

Modul 2.2: Zugang zu Ihren Teilnehmer-Ordnern via ftp (zum Dateientransfer):

Anleitung zum Login. über die Mediteam- Homepage und zur Pflege von Praxisnachrichten

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

Firefox: Die Lesezeichen im Griff

.htaccess HOWTO. zum Schutz von Dateien und Verzeichnissen mittels Passwortabfrage

Datenaustausch mit Datenbanken

Anleitung So klappt der Downloadschnitt

Second Steps in eport 2.0 So ordern Sie Credits und Berichte

Schritt-für-Schritt Anleitung: Windows 7 per USB-Stick installieren

GS-Buchhalter/GS-Office 2015 Saldovorträge in folgenden Wirtschaftsjahren erfassen

Kurzanleitung Registrierung / Kauf Basispaket Anbieter

Materialupload. Verwalten von Unterrichtsmaterialien. über das STiNE-Webportal. Universität Hamburg Tor zur Welt der Wissenschaft

Bedienungsanleitung. Stand: Copyright 2011 by GEVITAS GmbH

Umstellung auf das Mobile-TAN-Verfahren in der VR-NetWorld Software

Installation Server HASP unter Windows 2008 R2 Server 1 von 15. Inhaltsverzeichnis

Anleitung zum Prozess Anfrage an Kursliste stellen Inhalt

DOS-Sympas Scope Dateien in Excel einlesen

Anleitung für die Umstellung auf das plus Verfahren mit manueller und optischer Übertragung

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

Anleitung zur Verwendung der VVW-Word-Vorlagen

KURZANLEITUNG CLOUD OBJECT STORAGE

1 Konto für HBCI/FinTS mit Chipkarte einrichten

COSA. Portal Client Installation JAVA J2SE / JRE Version 1.4.2_09, Stand Copyright

Transkript:

Programmieren 1 & 2 Zusätzliche Unterlagen Zusätzliche Unterlagen Inhaltsverzeichnis 1 Hilfe- und Dokumentationsseiten unter UNIX (man pages) 1 2 Plotten unter UNIX (gnuplot) 3 3 Detect Unintended Memory Access (DUMA) 5 1 Hilfe- und Dokumentationsseiten unter UNIX (man pages) Man Pages (nach dem Unix-Kommando man, was für englisch manual Handbuch steht) sind eine Sammlung von Hilfe- und Dokumentationsseiten unter Unix und verwandten Betriebssystemen. In den Man-Pages finden sich die Dokumentationen aller in der Unix Shell verfügbaren Befehle, aber auch die für die Lehrveranstaltung wichtige Dokumentation aller in der Programmiersprache C vordefinierten Funktionen. Um die Man Pages aufrufen zu können muss vorerst eine Konsole (Terminal) gestartet werden. Dies kann durch Aufrufen des Software Schnellzugriffes durch Drücken der Tastenkombination Alt + F2, vgl. Abbildung 1, oder durch Auswahl der Konsolenanwendung über die Menüleiste bzw. durch Starten der Konsole über die Verknüpfung am Desktop erfolgen. Abbildung 1: Starten der Konsole (des Terminals) mit Hilfe des Application Finders, welcher über die Tastenkombination Alt + F2 aufgerufen werden kann. Aufgerufen werden die einzelnen Man-Pages unter Verwendung des Schlüsselwortes man gefolgt vom jeweiligen Befehl, siehe Abbildung 2. Zum Beispiel liefert der Ausdruck man strstr die Hilfeseiten zur C-Funktion strstr wie in Abbildung 3 dargestellt. 1

Abbildung 2: Befehl zum Aufrufen der Hilfeseite für strstr. Abbildung 3: Hilfeseite zu strstr. Eine Man Page eines C Befehls bzw. eines Programms ist üblicherweise in folgende Bereiche unterteilt (in Klammer gesetzte Ausdrücke sind optional): NAME: Name der Funktion/des Programms gefolgt von einer Kurzbeschreibung. SYNOPSIS: Hier wird eine vollständige Liste der Parameter und Optionen beschrieben. Ebenfalls findet man hier die notwendige Headerdatei für die betreffende Funktion. DESCRIPTION: Eine Textbeschreibung der Funktionsweise des Befehls oder der Funktion. (Üblicherweise jedoch nicht der Benutzung, siehe unten.) RETURN VALUE: Beschreibung der Rückgabewerte der Funktion. CONFORMING TO: Auflistung der C Standards, in welcher der Befehl in der jeweiligen Headerdatei verfügbar ist. Für die Laborübung sind all jene Befehle interessant, welche im C99 Standard verfügbar sind. OPTIONS / FLAGS: Eine üblicherweise alphabetisch sortierte Liste der Optionen und ihrer zulässigen Argumente. (USAGE): Eine Anleitung für den Einsatz der Funktion/des Programmes. EXIT STATUS: Beschreibung möglicher Return Codes und deren Bedeutung. (EXAMPLES): Einige Beispiele zur Benutzung des Befehls/des Programmes. 2

(FILES): Falls bestimmte Dateien (etwa Konfigurationsdateien) an der Funktion des Programms beteiligt sind oder durch die Ausführung desselben betroffen sind, so werden sie hier aufgeführt und es wird ihre Funktion beschrieben. SEE ALSO: Eine Liste ähnlicher oder verwandter Befehle oder Funktionen. Die Man Pages werden durch drücken der Taste q (quit) geschlossen und es erscheint die Eingabezeile in der Konsole. 2 Plotten unter UNIX (gnuplot) Gnuplot ist ein skript- bzw. kommandozeilengesteuertes Computerprogramm zur grafischen Darstellung von Messdaten und mathematischen Funktionen. Aufgerufen wird es über die Unix Konsole. Hiezu wird eine Konsole geöffnet und über die Eingabe gnuplot und anschließendes Drücken der Eingabetaste wird die Gnuplot Kommandozeile gestartet, vgl. Abbildung 4. Abbildung 4: Durch Starten der Konsole und Aufrufen des Kommandos gnuplot wird die Gnuplot Kommandozeileneingabe geöffnet. In Gnuplot können alle gängigen Rechenoperationen durchgeführt werden. Wie in Abbildung 5 dargestellt, kann mittels der Eingabe print 2.0 * pi + sqrt(2) * 4**2 das Ergebnis der Rechnung 2π + 2 4 2 3

Abbildung 5: Mit Gnuplot lassen sich Rechenoperationen durchführen. ausgegeben werden. Auch sind in Gnuplot mathematische Funktionen wie zum Beispiel sin, cos, tan, exp, log, log10, sqrt und viele mehr verfügbar. Die Graphen verschiedenster Funktionen lassen sich in Gnuplot sehr einfach visualisieren. Mit der Eingabe werden die Funktionen graphisch dargestellt, vgl. Abbildung 6. plot sin(x), cos(x), x**2 f 1 (x) = sin(x), f 2 (x) = cos(x) und f 3 (x) = x 2 Außerdem lassen sich in Gnuplot auf elegante Weise Inhalte von Textdateien darstellen. Die Testdaten für folgenden Dateiauszug wurden mittels der Funktion f(x) = sin(x) ermittelt. Die einzelnen Spalten der Daten werden durch beliebig viele white spaces, also zum Beispiel Leerzeichen, voneinander getrennt. So eine Datei sieht zum Beispiel folgendermaßen aus (die linke Spalte stellt die Stellen (x-werte) und die rechte Spalte die Funktionswerte f(x) dar): 0.000 0.000 0.628 0.588 1.256 0.951 1.884 0.951 2.512 0.589...... 4

Abbildung 6: Plotten der trigonometrischen Funktionen sin und cos sowie der Funktion x 2. Mit der Eingabe plot test.dat using 1:2 with lines wird der Inhalt der Datei test.dat geplottet, wobei die x-werte der ersten Spalte und die y-werte der zweiten Spalte entnommen werden. Dies wird Gnuplot mit Verwendung des Schlüsselwortes using mitgeteilt. Eine Darstellung des Graphen findet sich in Abbildung 7 Sehr praktisch ist auch, dass mit der Pfeiltaste nach oben die letzten ausgeführten Befehle in der Kommandozeileneingabe wiederhergestellt werden können. So kann sehr schnell auf die letzten Eingaben erneut zugegriffen werden. Mit der Eingabe quit wird Gnuplot beendet und mir der Konsoleneingabe kann fortgefahren werden. 3 Detect Unintended Memory Access (DUMA) Es ist prinzipbedingt schwierig, alle Fehler, die möglicherweise auftreten können, zu testen und zu überprüfen, ob sich das Programm soweit wie möglich korrekt verhält. Es treten auch nicht alle Fehler mit der gleichen Häufigkeit auf. Leicht zu überprüfende Fehler sind in unserem konkreten Fall beispielsweise eine Division durch Null, wesentlich schwieriger zu überprüfen sind die Fälle, in denen z.b. malloc() Null zurückliefert. In diesen Fällen darf das Programm unter keinen Umständen abstürzen, sondern muss eine definierte Fehlerbehandlung durchführen. Die Wahrscheinlichkeit, dass malloc() in Ihrem Programm während der Übung Null zurückliefert, ist praktisch Null. Dies gilt nicht nur für die Übung, sondern ist auch sonst während der 5

Abbildung 7: Plotten von Textdateiinhalten. Programmentwicklung ein seltenes Ereignis. Das verleitet viele Programmierer dazu, die Überprüfung des Rückgabewertes nicht sehr ernst zu nehmen. Die Folge davon sind Programme, die funktionieren, solange kleine Datenmengen zu verarbeiten sind, aber abstürzen, sobald die erstellte Software in den produktiven Einsatz gebracht wird. Während der Übung müssen Sie Ihrem Compiler mitteilen die Bibliothek DUMA zu linken und die Headerdatei duma.h inkludieren. Diese Bibliothek ersetzt die Systemfunktionen malloc(), calloc(), realloc() und free() durch eigene Varianten, die bei falscher Verwendung eine Fehlermeldung zurückliefern. Für die Übung haben wir DUMA so verändert, dass über eine UNIX Umgebungsvariable die Fehlerwahrscheinlichkeit für die Speicherallozierung eingestellt werden kann. Im Konkreten müssen Sie folgendes tun: In Code::Blocks im Menü Project/Build Options beim Punkt Linker Settings unter Other linkeroptions die Zeile -lm -lduma -lpthread eintragen. Hierbei bezieht sich -lm auf die Mathematikbibliothek und die zwei folgenden Einträge auf die DUMA Bibliothek. Wie Sie sehen, funktioniert das Hinzufügen dieser Bibliothek analog zur Mathematikbiliothek. Um das Programm mit gesetzter Umgebungsvariable DUMA_MALLOC_ERROR zu starten, führen sie die Zeile DUMA_MALLOC_ERROR =50./ < Programmname > in der Konsole aus. Der Wert der Umgebungsvariable DUMA_MALLOC_ERROR (hier:50) gibt die Wahrscheinlichkeit an, dass ein malloc() 0 zurückliefert, also fehlschlägt. Der Wert 100 entspricht dabei dem Fall, dass immer Null zurückgeliefert wird, der Wert 0 dem Fall, dass kein Fehler erzeugt wird. Sie bekommen beim Ausführen ihres Programms zusätzlich nützliche Ausgaben von DUMA. Im Anschluss zeigen wir ein Beispielprogramm: 6

long * ptr1 ; long * ptr2 ; if (!( ptr1 = malloc (10 * sizeof ( long )))) { fprintf ( stderr, " Fehler : Speicher konnte nicht angefordert werden!\n"); exit ( -1); } /*... */ ptr1 = ptr2 ; /* Fehler : Verlust des Speicherbereichs von ptr1 */ /*... */ free ( ptr1 ); DUMA liefert Ihnen dazu folgende (oder eine sehr ähnliche) Ausgabe: DUMA 2.4.27 (static library) Copyright (C) 2002-2006 Hayati Ayguen <h_ayguen@web.de>, Procitec GmbH Copyright (C) 1987-1999 Bruce Perens <bruce@perens.com> DUMA: ptr=0x2b4d542d1fb0 size=80 alloced from memory_leak.c(9) not freed DUMA Aborting: DUMA_delFrame(): Found non free d pointers. Mit der Ausgabe Found non free d pointers wird signalisiert, dass nicht alle dynamisch allozierten Speicherbereiche freigegeben worden sind. Diese Meldung darf bei korrekt funktionierenden Programmen nicht auftreten! 7