martin GRÄFE C UND LINUX DIE MÖGLICHKEITEN DES BETRIEBSSYSTEMS MIT EIGENEN PROGRAMMEN NUTZEN 4. Auflage

Größe: px
Ab Seite anzeigen:

Download "martin GRÄFE C UND LINUX DIE MÖGLICHKEITEN DES BETRIEBSSYSTEMS MIT EIGENEN PROGRAMMEN NUTZEN 4. Auflage"

Transkript

1 martin GRÄFE C UND LINUX DIE MÖGLICHKEITEN DES BETRIEBSSYSTEMS MIT EIGENEN PROGRAMMEN NUTZEN 4. Auflage

2 Gräfe C und Linux C vbleiben Sie einfach auf dem Laufenden: Sofort anmelden und Monat für Monat die neuesten Infos und Updates erhalten.

3

4 Martin Gräfe C und Linux Die Möglichkeiten des Betriebssystems mit eigenen Programmen nutzen 4., vollständig überarbeitete und erweiterte Auflage

5 Dr.-Ing. Martin Gräfe, geboren 1968 in Hagen, studierte Elektrotechnik an der Universität Dortmund. Dort war er nach Abschluss des Studiums als wissenschaftlicher Mitarbeiter tätig und promovierte 1998 auf dem Gebiet der Mikroelektronik. Bereits während des Studiums befasste sich Martin Gräfe mit C-Programmierung unter Unix und seit 1995 schließlich auch mit Linux. Im Rahmen seiner Promotion und seiner Tätigkeit als Ingenieur entwickelte er verschiedene Programme zur Simulation elektronischer Schaltungen und Übertragungssysteme. Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autoren und Verlag übernehmen infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen oder Teilen davon entsteht, auch nicht für die Verletzung von Patentrechten und anderen Rechten Dritter, die daraus resultieren könnten. Autoren und Verlag übernehmen deshalb keine Gewähr dafür, dass die beschriebenen Verfahren frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Bibliografische Information der Deutschen Nationalbibliothek: Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über abrufbar. Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) auch nicht für Zwecke der Unterrichtsgestaltung reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden Carl Hanser Verlag München Wien (www.hanser.de) Lektorat: Margarete Metzger Herstellung: Irene Weilhart Copy editing: Manfred Sommer, München Umschlagdesign: Marc Müller-Bremer, München Umschlagrealisation: Stephan Rönigk Datenbelichtung, Druck und Bindung: Kösel, Krugzell Ausstattung patentrechtlich geschützt. Kösel FD 351, Patent-Nr Printed in Germany ISBN

6 Inhaltsverzeichnis 1 Einführung Warum gerade C? Bevor es losgeht Paketverwaltung unter SuSE-Linux Paketinstallation bei Ubuntu Die Werkzeuge Der Editor die Qual der Wahl Der GNU C-Compiler gcc Ablaufsteuerung mit GNU make Für die Fehlersuche: Die Debugger Integrierte Entwicklungsumgebungen Der Umgang mit Compiler, Debugger und make anhand von Beispielen Primzahlen berechnen Fehlersuche mit dem gcc Fehlersuche mit dem GNU Debugger Funktionsbibliotheken verwenden Quelltexte aufteilen Weiterführende Informationen Die Unix-Online-Hilfen man, xman und tkman Ein Blick hinter die Kulissen: Die Include-Dateien Arbeiten mit einer Entwicklungsumgebung Anjuta Ein neues Projekt anlegen Eingabe der Quelltexte

7 VI Inhaltsverzeichnis Kompilieren und Starten des Beispiels KDevelop Eclipse + C Development Tooling (CDT) Plug-ins einbinden Ein neues Projekt anlegen Kommandozeilenprogramme Parameter und Rückgabewert der Funktion main() Die Bedeutung des Rückgabewertes von main() Die Variablen argc und argv Auswerten der Kommandozeilenparameter Achtung: Platzhalter! Konventionen für Kommandozeilenprogramme Ein Muss: Die Hilfe-Option Fehlermeldungen Eigene Manpages erstellen Programme mehrsprachig auslegen Ausgabesteuerung im Terminal-Fenster ANSI-Steuersequenzen Die ncurses -Bibliothek Dateien und Verzeichnisse Die Arbeit mit Dateien Gepufferte Ein-/Ausgabe stdin, stdout und stderr Dateien öffnen und schließen Lesen aus und Schreiben in Dateien Ein Beispiel: Zeilen nummerieren Eigenschaften von Dateien oder Verzeichnissen auswerten Verzeichnisse einlesen Interprozesskommunikation Prozessverwaltung unter Linux Neue Prozesse starten Shell-Programme aufrufen mit system() Die Funktionen der exec-familie

8 Inhaltsverzeichnis VII Einen Kind-Prozess erzeugen mit fork() Warteschleifen Signale Die Weckfunktion alarm() Einen Signal-Handler einrichten Auf die Beendigung eines Kind-Prozesses warten Signale setzen mit kill() Datenaustausch zwischen Prozessen Pipes FIFOs Shared Memory Alternative Verfahren zur Erzeugung von Prozessen popen() und pclose() Die fork()-alternative clone() POSIX-Threads Devices das Tor zur Hardware Das Device-Konzept von Linux Devices öffnen und schließen Ungepuffertes Lesen und Schreiben Devices steuern mit ioctl() Das CD-ROM-Laufwerk Die CD auswerfen Fähigkeiten des Laufwerks auslesen Audio-CDs abspielen Ansteuerung einer Soundkarte OSS, ALSA und ESOUND Der Mixer Audiodaten aufnehmen und wiedergeben Video for Linux Eigenschaften des Devices Bilder aufzeichnen Die serielle Schnittstelle Terminal-Parameter einstellen Ein kleines Terminalprogramm Druckerausgaben

9 VIII Inhaltsverzeichnis 6.7 Der Universal Serial Bus (USB) Ansteuerung von USB-Geräten anhand eines Beispiels Netzwerkprogrammierung Einführung Begriffe Vorbereitung Das Client-Server-Prinzip Sockets Der TCP/IP-Client Aufbau einer Verbindung Ein Universal -Client Rechnernamen in IP-Adressen umwandeln Server-Programme Die Funktionsweise eines Servers Ein interaktiver TCP/IP-Server Ein kleiner Webserver Das User Datagram Protocol (UDP) UDP-Nachrichten senden Der UDP-Server Pakete an alle Teilnehmer senden: Broadcast Multicast-Sockets UPnP Universal Plug And Play Noch ein Wort zur Sicherheit Grafische Benutzeroberflächen Die grafische Oberfläche X Das Toolkit GTK GTK 1.2 versus GTK GTK-Programme übersetzen Ein erstes Beispiel Das Callback-Prinzip Schaltflächen (Buttons) Hinweistexte (Tipps) Widgets anordnen Text-Labels

10 Inhaltsverzeichnis IX Dialogfenster Auswahlfelder Eingabefelder für Text und Zahlen Menüs Pixmap-Grafiken darstellen Zeichenflächen Zeichenfläche mit Rollbalken Dateiauswahlfenster Umlaute und Sonderzeichen Wie geht es weiter? Grafik ohne X11 mit der SVGALIB Besonderheiten beim Arbeiten mit der libvga Ein erstes Beispiel Mit Perspektive: 3D-Funktionen zeichnen Ein kleines Malprogramm Erweiterte Funktionen mit der libvgagl Weitere Informationsquellen Hardware-Programmierung Hardware-nahe Programme schreiben Eigene Programme mit root-rechten ausstatten Zugriff auf I/O-Ports freischalten Zugriff auf die I/O-Ports Ansteuerung des Parallelports Beschreibung des Parallelports Die Adresse des Parallelports suchen Ein Beispiel: LED-Lauflicht Modem-Steuerleitungen abfragen Beispielprojekte WebCam: Video-Übertragung per HTTP Wie die Bilder laufen lernen Strukturierung der Quelltexte Die HTTP-Authentifizierung Telefonbuch mit automatischer Anwahl Ziel des Projektes

11 X Inhaltsverzeichnis Strukturierung des Projektes Das Hauptprogramm Funktionen zur Ansteuerung des Modems Die Benutzerschnittstelle To Do Anhang A1 Daten zum Buch im Internet A2 Das X11-Toolkit XView A3 Aufbau einer WAV-Audiodatei A4 Aufbau einer AU-Audiodatei A5 Linux-Programmierung unter Windows: Cygwin Literaturverzeichnis Stichwortverzeichnis

12 Vorwort Seit der 1. Auflage dieses Buches sind nun fast acht Jahre vergangen. In dieser Zeit hat sich Linux auf verschiedenen Gebieten weiterentwickelt: Für den Anwender ist die Unterstützung von USB- und anderen Plug&Play-Geräten hinzugekommen, für den Programmierer hat eine Standardisierung der unterschiedlichen Linux-Distributionen stattgefunden; es wurde die so genannte Linux Standard Base (kurz LSB) entwickelt. Beiden Entwicklungen wird in dieser 4. Auflage Rechnung getragen. Sämtliche Quelltexte wurden an die LSB angepasst und das Kapitel über die Ansteuerung von Geräten wurde um das Thema USB erweitert. Darüber hinaus sind in dem Kapitel Netzwerkprogrammierung Beispiele zu UDP, Broadcast und Multicast ergänzt worden. Dieses Buch wendet sich sowohl an den Programmier-Einsteiger, der Grundkenntnisse in der Programmiersprache C besitzt, als auch an den fortgeschrittenen Programmierer, der die vielfältigen Möglichkeiten des Betriebssystems in eigenen Programmen nutzen möchte. Dabei geht es vor allem um die Linuxspezifischen Themen, wie z. B. die Ansteuerung von Devices. Durch zahlreiche einfache Beispielprogramme soll der Einstieg in diese Themen erleichtert werden. Als Programmiersprache kommt ausschließlich ANSI-C zum Einsatz. Haiger, im Frühjahr 2010 Martin Gräfe

13

14 Kapitel 1 Einführung 1.1 Warum gerade C? Unter Linux ist mittlerweile eine Vielzahl von Programmiersprachen verfügbar, angefangen von Pascal und Fortran über Skript- oder Interpretersprachen wie TCL und Perl bis hin zu objektorientierten Compilersprachen wie C++ und Java. Jede dieser Programmiersprachen hat ihre Vor- und Nachteile, C kommt jedoch eine besondere Bedeutung zu, da fast das gesamte Betriebssystem in ANSI-C geschrieben ist. 1 Mit den Kernel-Quellen stehen dadurch sämtliche für die systemnahe Programmierung erforderlichen Include-Dateien unter C zur Verfügung. Aus diesem Grund lassen sich die Möglichkeiten des Betriebssystems (und der Hardware) mit C so vollständig wie mit keiner anderen Programmiersprache nutzen. 2 Da C eine kompakte, relativ maschinennahe Programmiersprache ist, sind C- Programme effizient und schonen die System-Ressourcen. Für das Ausführen der Programme ist weder ein Interpreter noch eine Laufzeitumgebung wie bei Java erforderlich. Trotzdem sind die Quelltexte portabel viele der Beispielprogramme in diesem Buch laufen auch unter kommerziellen Unix-Varianten (z. B. Solaris von Sun oder HPUX von Hewlett Packard) und mit Cygwin 3 sogar unter Windows TM. Mit den Kernel-Quellen und vielen Open Source-Programmen hat der Programmierer Zugriff auf eine nahezu unbegrenzte Menge an Quelltexten, aus denen er sich den einen oder anderen Programmierkniff abschauen kann und darf. Denn in der Welt der offenen Quelltexte muss zum Glück das Rad nicht immer wieder neu erfunden werden. 1 Mit Ausnahme einiger Hardware-naher oder zeitkritischer Programmteile, die in Assembler programmiert wurden. 2 Außer vielleicht in Assembler, was aber keine echte Alternative zu Hochsprachen darstellt. 3 siehe Anhang A5 ab Seite 317

15 2 1 Einführung 1.2 Bevor es losgeht müssen die notwendigen Tools und Dateien installiert sein. In der Anfangszeit von Linux, als man nach der Installation erst einmal den Kernel nach eigenen Wünschen neu kompilierte, waren die Werkzeuge für die C-Programmierung fester Bestandteil der Linux-Distributionen und wurden in der Regel automatisch mit installiert. Inzwischen ist das Kompilieren des Kernels dank der Modularisierung nicht mehr notwendig, und so werden bei vielen Distributionen die Pakete zur Software-Entwicklung nicht mehr automatisch installiert. Bei einigen auf CD erhältlichen Distributionen sind diese Pakete nicht einmal mehr enthalten, sondern müssen aus dem Internet nachgeladen werden. Um die Beispiele in diesem Buch übersetzen zu können, benötigen Sie das Paket mit dem C-Compiler gcc sowie das Programm make. Außerdem werden für das Einbinden von Funktionsbibliotheken in eigene Programme die zugehörigen Include-Dateien benötigt, die häufig in separaten Paketen enthalten sind. Beispiel: Die Funktionsbibliothek libncurses wird bei den meisten Distributionen als Voreinstellung installiert. Wenn Sie diese Bibliothek in einem eigenen Programm benutzen wollen, benötigen Sie zusätzlich das zugehörige Entwicklungspaket. Je nach Distribution heißt dieses Paket beispielsweise ncurses-dev-version oder ncurses-devel-version. Im Folgenden soll exemplarisch für die Distributionen SuSE und Ubuntu gezeigt werden, wie Pakete nachinstalliert werden können Paketverwaltung unter SuSE-Linux In der Linux-Distribution von SuSE 1 ist das Tool YaST (Abkürzung für Yet Another Setup Tool ) enthalten, das für alle wichtigen Systemeinstellungen zuständig ist. Dieses kann entweder aus dem Menü des Windowmanagers oder als Benutzer root aus einer Shell mit dem Kommando /sbin/yast2 aufgerufen werden. Durch einen Klick auf das Icon Software installieren oder löschen in der Rubrik Software wird die Paketverwaltung geöffnet (siehe Abbildung 1.1). Findet man das gesuchte Paket nicht unter den angezeigten Paketgruppen, kann man den Filter (oben links) auf Suche umstellen und ein entsprechendes Stichwort eingeben. Die Pakete der Distribution von SuSE liegen im RPM-Format (Abkürzung für RedHat Packet Manager ) vor. Daher können einzelne Pakete auch mit dem Befehl rpm -i Paket-Datei installiert werden. 1 SuSE steht für Software- und Systementwicklung. So heißt das kleine Unternehmen, das diese Distribution zusammenstellt und inzwischen von der Firma Novell aufgekauft wurde.

16 1.2 Bevor es losgeht... 3 Abbildung 1.1: Die Paketverwaltung unter SuSE mit YaST

17 4 1 Einführung Paketinstallation bei Ubuntu Ubuntu-Linux ist von der Linux-Distribution Debian abgeleitet und verwendet die gleichen Pakete. Anders als bei SuSE sind die Pakete daher im Debian-eigenen DEB-Format. Für die Auswahl und Installation der Pakete bringt der GNOME- Desktop unter Ubuntu ein spezielles Tool mit, das über das GNOME-Menü aufgerufen werden kann (siehe Abbildung 1.2). Abbildung 1.2: Öffnen der GNOME-Paketverwaltung bei Ubuntu-Linux In der Startansicht bietet das Werkzeug nur das Installieren oder Entfernen ganzer Anwendungen an, ohne die einzelnen Pakete im Detail aufzulisten. Über den Menüpunkt Datei/Erweitert lässt sich die Darstellung erweitern, sodass die einzelnen Pakete aufgelistet werden können (siehe Abbildung 1.3). Ähnlich wie bei YaST unter SuSE-Linux ist auch hier die Möglichkeit gegeben, nach bestimmten Paketen anhand von Stichworten zu suchen (Schaltfläche Suche unten links). Wenn Sie Pakete von Hand installieren wollen, so gibt es dafür bei Ubuntu zwei Kommandozeilenprogramme: apt-get und dbkg : sudo dpkg -i Paket-Datei sudo apt-get install Paket-Datei

18 1.2 Bevor es losgeht... 5 Abbildung 1.3: Erweiterte Ansicht für die GNOME-Paketverwaltung

19 6 1 Einführung 1.3 Die Werkzeuge In diesem Abschnitt stellen wir in kurzer Form die für das Programmieren erforderlichen Werkzeuge vor. In Abschnitt 1.4 wird der Umgang mit diesen Werkzeugen dann anhand von Beispielen erläutert. Den Schwerpunkt bilden dabei die für Unix und Linux üblichen Kommandozeilen-Tools. Den Umgang mit einer integrierten Entwicklungsumgebung beschreibt Kapitel Der Editor die Qual der Wahl Um ein Programm zu schreiben, benötigt man natürlich zunächst einen Editor, mit dem man den Quelltext eingibt. Bei Verwendung einer integrierten Entwicklungsumgebung (siehe Abschnitt 1.3.5) ist bereits ein solcher Editor in diese Umgebung eingebaut, doch viele Programmierer verwenden stattdessen ihren Lieblingseditor wovon es unter Linux eine ganze Menge gibt. Dabei kann man zwei Kategorien unterscheiden: Editoren, die auf der Konsole bzw. in einem Terminalfenster (wie XTerm) laufen, und Editoren, die über eine eigene grafische Benutzeroberfläche verfügen. Letztere sind in der Regel komfortabler, weil sie über Syntax-Highlighting verfügen, benötigen aber auch weit mehr Ressourcen. Editoren für die Textkonsole: vim (steht für VI improved ) emacs pico joe jedit... Editoren mit grafischer Oberfläche: kate (Bestandteil von KDE) gedit (Bestandteil von GNOME) nedit xemacs... Der Editor kate bietet außerdem die Möglichkeit, C-Funktionen einzuklappen, um den Quelltext übersichtlicher darzustellen (siehe Abbildung 1.4). Nicht alle hier erwähnten Editoren sind in jeder Linux-Distribution enthalten. Ggf. müssen die zugehörigen Pakete erst aus dem Internet geladen und gemäß Abschnitt 1.2 installiert werden.

20 1.3 Die Werkzeuge 7 Abbildung 1.4: Zwei Editoren für Programmierer: nedit und kate

21 8 1 Einführung Der GNU C-Compiler gcc Kernstück der Software-Entwicklung ist der C-Compiler selbst, also der gcc bzw. g++ (für C++-Programme). Der gcc ist ein so genannter Cross-Compiler, mit dem man im Grunde auch Programme für andere Betriebssysteme oder Hardware- Plattformen (also andere Prozessoren) entwickeln kann. Der einfachste Aufruf des Compilers lautet: gcc Quelltext So aufgerufen, wird der Quelltext kompiliert, assembliert und gelinkt, sodass ein ausführbares Programm entsteht. Dieses Programm wird voreingestellt unter dem Dateinamen a.out abgespeichert. In der Regel wird man diese Voreinstellung nicht verwenden, sondern einen anderen, zweckmäßigeren Namen wählen wollen. 1 Dies geschieht mit Hilfe der Option -o : gcc Quelltext -o Ausgabedatei Beispiel: gcc hello.c -o hello Bei diesem Aufruf führt der gcc zwei Schritte durch: das eigentliche Kompilieren (Übersetzen) und das Linken zu einem ausführbaren Programm. Letzterer sorgt z.b. dafür, dass Funktionsaufrufe wie printf() mit den entsprechenden Funktionen aus der dynamischen Bibliothek libc verknüpft werden. Wird ein Programm auf mehrere Quelltexte aufgeteilt, so müssen die einzelnen Programmteile zunächst nur übersetzt werden, ohne den Linker aufzurufen. Dazu wird beim Übersetzen die Option -c angegeben. Der Compiler erzeugt in diesem Fall nur eine Objektdatei, die automatisch die Endung.o erhält. Ein Beispiel hierzu findet sich in Abschnitt Der gcc besitzt eine Vielzahl weiterer Optionen, von denen wir in diesem Buch nur einen kleinen Teil benötigen. Eine vollständige Beschreibung erhält man mit man gcc. Die Reihenfolge der Parameter und Optionen ist beim gcc bis auf wenige Ausnahmen beliebig Ablaufsteuerung mit GNU make Für das Übersetzen kleinerer Programme benötigt man in der Regel nur den C- Compiler wie im vorherigen Abschnitt beschrieben. Bei umfangreicheren Projekten sollten Sie den Quelltext in mehrere Teile zerlegen. Dadurch werden die Dateien nicht nur übersichtlicher, es ist dann auch möglich, bei Änderungen nur diejenigen Dateien neu zu übersetzen, die geändert wurden. Genau hier setzt das 1 Sie sollten für erste Versuche nicht den Namen test wählen, da ein gleichnamiges Programm schon Bestandteil der Shell ist!

22 1.3 Die Werkzeuge 9 Programm make an. Es prüft, ob sich die Quellen eines Programmteils geändert haben, und übersetzt diesen Teil dann neu. Das Tool make benötigt dazu eine Datei, in der die Abhängigkeiten der Quellund Zieldateien und die Anweisungen (Compiler-Aufrufe) eingetragen sind. Ein Eintrag in dieser Datei, dem so genannten Makefile, sieht wie folgt aus: Zieldatei: Quelldatei1 Quelldatei2... Anweisung1 Anweisung2... Beispiel: hello: hello.c gcc hello.c -o hello Alle Anweisungszeilen müssen mit einem oder mehreren Tabulatoren ( echte Tabs, keine Leerzeichen!) eingerückt sein, während die Zieldatei immer am Zeilenanfang stehen muss. Eine solche Make-Datei kann beliebig viele Zieldateien mit den zugehörigen Quelldateien und Anweisungen enthalten. Zur Veranschaulichung sei auf das Beispiel in Abschnitt verwiesen. Wird die Make-Datei Makefile oder makefile genannt, so kann make ohne Parameter aufgerufen werden. Andernfalls lautet der Aufruf: make -f Make-Datei Sind in dem Makefile mehrere Zieldateien angegeben, kann durch die Eingabe von make Zieldatei gezielt eine dieser Dateien erzeugt werden, wobei make auch hier automatisch die Abhängigkeiten prüft und ggf. weitere, für die angegebene Zieldatei erforderliche Dateien neu erzeugt. Ohne Angabe der Zieldatei wird immer die erste Datei im Makefile erzeugt. An dieser Stelle sei noch darauf hingewiesen, dass es sich bei dem Ziel nicht unbedingt um eine Datei handeln muss. So findet sich in Makefiles häufig ein Eintrag der folgenden Form: clean: rm -f *.o Mit dem Aufruf make clean werden dann Objekt-Dateien, die man nicht mehr benötigt, gelöscht. Man beachte, dass hier keine Quelldateien angegeben sind, was dazu führt, dass die Anweisung immer ausgeführt wird. Für eine ausführliche Anleitung siehe auch man make.

23 10 1 Einführung Für die Fehlersuche: Die Debugger Nur selten läuft ein Programm auf Anhieb einwandfrei. Schnell schleichen sich Fehler ein, im Programmiererjargon Bugs (Wanzen 1 ) genannt. Zur Lokalisierung und Beseitigung der Bugs greift man zu einem Debugger (Entwanzer). Unter Linux hat der Programmierer in die Wahl zwischen dem textbasierten GNU Debugger gdb dem Urvater der Debugger unter Linux und verschiedenen grafischen Front-Ends. Ursprünglich gab es eine relativ rudimentäre grafische Oberfläche für den GNU Debugger namens xxgdb. Dieses Projekt wurde aber vor geraumer Zeit durch ein von Grund auf neu gestaltetes Tool ersetzt, den DDD (Abkürzung für Data Display Debugger, siehe Abbildung 1.5). Der DDD ist kein eigenständiger Debugger sondern eine grafische Benutzeroberfläche für den GNU Debugger gdb. Das Tool wurde übrigens in Deutschland entwickelt! Abbildung 1.5: Ein elektronischer Kammerjäger: der DDD Um einen Fehler in einem Programm mit Hilfe des Debuggers zu finden, muss das Programm Zusatzinformationen enthalten, mit deren Hilfe der Debugger das 1 Dieser Ausdruck stammt noch aus der Zeit der Relais-Computer. Hier hatte sich einmal eine Wanze zwischen die Relaiskontakte verirrt und dadurch Rechenfehler verursacht.

24 1.3 Die Werkzeuge 11 ausführbare Programm mit dem zugehörigen Quelltext in Verbindung bringen kann. Diese Zusatzinformationen fügt der gcc mit Hilfe der Option -g ein: gcc -g hello.c -o hello Anschließend kann der Debugger aufgerufen werden, z. B.: ddd hello Hier können Sie nun so genannte Breakpoints setzen, das Programm schrittweise ausführen und den Inhalt von Variablen anzeigen. Kommt es zur Laufzeit des Programms zu einem Fehler, der die Ausführung sofort abbricht beispielsweise eine Speicher-Zugriffsverletzung (Segmentation fault) oder eine Division durch null, so zeigt der Debugger die entsprechende Zeile im Quelltext an, die zu diesem Fehler geführt hat. Übrigens: nach erfolgreicher Fehlerbeseitigung lassen sich die für die Ausführung des Programms nicht notwendigen Debug-Zusatzinformationen mit strip hello wieder entfernen, ohne das Programm neu zu übersetzen. Dadurch reduziert sich die Größe des Programms offtmals erheblich Integrierte Entwicklungsumgebungen Als Alternative zur direkten Verwendung der bisher vorgestellten Werkzeuge gibt es die Möglichkeit, mit einer integrierten Entwicklungsumgebung 1 zu arbeiten. Dabei handelt es sich um ein Programm, das neben einem Quelltext-Editor auch eine grafische Schnittstelle für Compiler, Debugger usw. bietet. Insbesondere Umsteiger aus der Windows-Welt finden mit Hilfe solcher Programme häufig leichter den Einstieg in die Linux-Programmierung. Man sollte jedoch beachten, dass Entwicklungsumgebungen keine Compiler, sondern eben nur Umgebungen sind und zum Übersetzen und Linken des Quelltextes wieder auf den C-Compiler gcc zurückgreifen. Der Vorteil solcher Programme ist, dass das Wechseln zwischen den Werkzeugen Editor, Compiler, Debugger usw. entfällt. Tritt beispielsweise beim Übersetzen des Programms ein Fehler auf, wird automatisch die entsprechende Zeile im Quelltext markiert. 1 auch als IDE für Integrated Development Environment bezeichnet

25 12 1 Einführung Abbildung 1.6: KDevelop Entwicklungsumgebung des KDE Abbildung 1.7: Das Entwicklungs-Framework Eclipse

26 1.3 Die Werkzeuge 13 Abbildung 1.8: Die GNOME-Entwicklungsumgebung Anjuta Abbildung 1.9: Entwicklungsumgebung à la Turbo-Pascal: xwpe

27 14 1 Einführung Unter Linux sind verschiedene Entwicklungsumgebungen frei verfügbar; einige dieser Linux-IDEs sind: KDevelop (Entwicklungsumgebung des KDE), siehe Abbildung 1.6 Eclipse + C Development Tooling (kurz CDT), siehe Abbildung 1.7 Anjuta (Entwicklungswerkzeug des GNOME-Projektes), siehe Abbildung 1.8 xwpe (X-Window Programming Environment) Alle vier Programme sind mausgesteuert, menügeführt und mit einer mehr oder weniger umfangreichen Online-Hilfe ausgestattet, die über den entsprechenden Menüpunkt aufgerufen werden kann. Die aktuellen Versionen von KDevelop, Eclipse (inkl. CDT) und Anjuta sind recht umfangreich und benötigen mehr als 50 MByte. KDevelop bringt es mit den zugehörigen Dokumentationspaketen sogar auf mehrere 100 MByte ein Grund, bei nicht so leistungsstarken Rechnern doch auf die schlanken Kommandozeilen- Programme zurückzugreifen. Eine Ausnahme bildet das nicht so bekannte Tool xwpe (Abbildung 1.9), das deutlich weniger Ressourcen benötigt, aber auch nicht so komfortabel ist wie beispielsweise KDevelop. Die Entwicklungsumgebung Eclipse fällt etwas aus der Reihe: Das in Java programmierte Tool bildet eine Art Framework. Für die Entwicklung von Java-Programmen wird zusätzlich das Paket JDT (Java Development Tooling) benötigt, für C-Programme entsprechend das Paket CDT. In Kapitel 2 beschreiben wir die Arbeit mit einer integrierten Entwicklungsumgebung anhand der Programme Anjuta und KDevelop eingehender. 1.4 Der Umgang mit Compiler, Debugger und make anhand von Beispielen Häufig sagt ein Beispiel mehr als tausend Worte; auch bei der Beschreibung von Programmierwerkzeugen ist das nicht anders. Aus diesem Grund wird in den folgenden Abschnitten die Handhabung der zuvor beschriebenen Werkzeuge anhand einfacher Beispiele demonstriert Primzahlen berechnen Das folgende kleine C-Programm berechnet die Primzahlen von 1 bis 100, Zahlen also, die sich nur durch 1 und sich selbst teilen lassen. 1 Es soll im Folgenden dazu dienen, das Übersetzen und die Fehlersuche mit den bereits vorgestellten Programmierwerkzeugen zu verdeutlichen. 1 Mathematisch exakt betrachtet, sind Primzahlen diejenigen Zahlen, die genau zwei Teiler besitzen.

C und Linux HANSER. Martin Gräfe. Die Möglichkeiten des Betriebssystems mit eigenen Programmen nutzen. 3., aktualisierte Auflage

C und Linux HANSER. Martin Gräfe. Die Möglichkeiten des Betriebssystems mit eigenen Programmen nutzen. 3., aktualisierte Auflage Martin Gräfe 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. C und Linux Die Möglichkeiten des Betriebssystems mit

Mehr

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging

Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Beispiel 2a Die eigenen ersten Schritte mit dem Gnu-Debugger GDB für Remote-Debugging Das Beispiel orientiert sich am selben Code, der im Teil 1 der Serie verwendet wurde. Text Styles: Shell Prompt mit

Mehr

1. Einführung. 2. Vorbereitung zur Installation. 1.1 Eclipse

1. Einführung. 2. Vorbereitung zur Installation. 1.1 Eclipse 1. Einführung 1.1 Eclipse Die Eclipse ist eine kostenlose integrierte Entwicklungsumgebung oder auch IDE genannt, (Abkürzung IDE, engl. Integrated development enviroment). Sie ist eine grafische Benutzeroberfläche

Mehr

Erste Schritte mit Eclipse

Erste Schritte mit Eclipse Erste Schritte mit Eclipse März 2008, KLK 1) Java Development Kit (JDK) und Eclipse installieren In den PC-Pools der HAW sind der JDK und Eclipse schon installiert und können mit dem Application Launcher

Mehr

Übung 4: Schreiben eines Shell-Skripts

Übung 4: Schreiben eines Shell-Skripts Aufgabenteil 1 Ziel der Übung Übung 4: Schreiben eines Shell-Skripts Anhand eines einfachen Linux-Skripts sollen die Grundlagen der Shell-Programmierung vermittelt werden. Das für die Bash-Shell zu erstellende

Mehr

Version 0.3. Installation von MinGW und Eclipse CDT

Version 0.3. Installation von MinGW und Eclipse CDT Version 0.3 Installation von MinGW und Eclipse CDT 1. Stellen Sie fest, ob Sie Windows in der 32 Bit Version oder in der 64 Bit Version installiert haben. 2. Prüfen Sie, welche Java Runtime vorhanden ist.

Mehr

Kurzanleitung CodeBlocks zur C-Programmierung. In dieser Kurzanleitung wird anhand zweier Beispiele beschrieben, wie C-Programme mit der

Kurzanleitung CodeBlocks zur C-Programmierung. In dieser Kurzanleitung wird anhand zweier Beispiele beschrieben, wie C-Programme mit der Fakultät für Ingenieurwissenschaften und Informatik Labor für Digital- und Mikroprozessortechnik, Juli 2015 Kurzanleitung CodeBlocks zur C-Programmierung In dieser Kurzanleitung wird anhand zweier Beispiele

Mehr

Programmieren. Wie entsteht ein Programm

Programmieren. Wie entsteht ein Programm Wie entsteht ein Programm 1/9 1. Schritt: Programmentwurf Der wichtigste Teil beim Erstellen eines Programms ist der Programmentwurf. Dabei wird das vorgegebene Problem analysiert, es wird ermittelt, welche

Mehr

Hello World in Java. Der Weg zum ersten Java-Programm

Hello World in Java. Der Weg zum ersten Java-Programm Vorwort Hello World in Java Der Weg zum ersten Java-Programm Diese Anleitung wurde unter Windows XP verfasst. Grundsätzlich sollte sie auch unter späteren Windows Versionen wie Windows Vista oder Windows

Mehr

ralf WIRDEMANN SCRUM MIT USER STORIES 2. Auflage

ralf WIRDEMANN SCRUM MIT USER STORIES 2. Auflage ralf WIRDEMANN SCRUM MIT USER STORIES 2. Auflage Wirdemann Scrum mit User Stories vbleiben Sie einfach auf dem Laufenden: www.hanser.de/newsletter Sofort anmelden und Monat für Monat die neuesten Infos

Mehr

Schäfer: Root-Server. Copyright (C) Open Source Press

Schäfer: Root-Server. Copyright (C) Open Source Press Schäfer: Root-Server Stefan Schäfer Root Server einrichten und absichern Alle in diesem Buch enthaltenen Programme, Darstellungen und Informationen wurden nach bestem Wissen erstellt. Dennoch sind Fehler

Mehr

Grundlagen der Verwendung von make

Grundlagen der Verwendung von make Kurzskript zum Thema: Grundlagen der Verwendung von make Stefan Junghans Gregor Gilka 16. November 2012 1 Einleitung In diesem Teilskript sollen die Grundlagen der Verwendung des Programmes make und der

Mehr

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python.

Kapitel 6,»Objektorientierte Programmierung«, widmet sich der objektorientierten Programmierung mit Python. 1.3 Aufbau des Buchs lichkeiten offen. Auf die Unterschiede der beiden Versionen gehe ich besonders ein, sodass ein späterer Umstieg von der einen zur anderen Version leichtfällt. Erste Zusammenhänge werden

Mehr

1 Installationen. 1.1 Installationen unter Windows

1 Installationen. 1.1 Installationen unter Windows 1 Installationen Dieses Kapitel beschreibt die Installationen, die für die Nutzung von PHP und MySQL unter Windows, unter Ubuntu Linux und auf einem Mac mit OS X notwendig sind. 1.1 Installationen unter

Mehr

Kurzanleitung zur Benutzung der Entwicklungsumgebung Code::Blocks für die Übung aus Programmieren 1 und 2

Kurzanleitung zur Benutzung der Entwicklungsumgebung Code::Blocks für die Übung aus Programmieren 1 und 2 Kurzanleitung zur Benutzung der Entwicklungsumgebung Code::Blocks für die Übung aus Programmieren 1 und 2 Institut für Mikroelektronik, TU Wien 8. Oktober 2009 Dieses Dokument ist für den schnellen Einstieg

Mehr

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH

Autor: Michael Spahn Version: 1.0 1/10 Vertraulichkeit: öffentlich Status: Final Metaways Infosystems GmbH Java Einleitung - Handout Kurzbeschreibung: Eine kleine Einführung in die Programmierung mit Java. Dokument: Autor: Michael Spahn Version 1.0 Status: Final Datum: 23.10.2012 Vertraulichkeit: öffentlich

Mehr

So bringst du Prolog zum Laufen...

So bringst du Prolog zum Laufen... Diese Anleitung soll dir dabei helfen den freien Prolog-Interpreter SWI-Prolog zu installieren einen geeigneten Texteditor auszuwählen, mit dem du Prolog-Programme schreiben kannst das erste kleine Programm

Mehr

2.4 Das erste C++-Programm *

2.4 Das erste C++-Programm * 2.4 Das erste C++-Programm * 11 2.4 Das erste C++-Programm * Den besten Lernerfolg erzielen Sie, wenn Sie alle Beispiele dieses Buchs selbst nachvollziehen. Sie können hierzu einen Compiler verwenden,

Mehr

VB.net Programmierung und Beispielprogramm für GSV

VB.net Programmierung und Beispielprogramm für GSV VB.net Programmierung und Beispielprogramm für GSV Dokumentation Stand vom 26.05.2011 Tel +49 (0)3302 78620 60, Fax +49 (0)3302 78620 69, info@me-systeme.de, www.me-systeme.de 1 Inhaltsverzeichnis Vorwort...2

Mehr

webpdf für VMware SoftVision Development GmbH Kurfürstenstraße 15 36037 Fulda, Deutschland Tel.: +49 (0)661 25100-0 Fax: +49 (0)661 25100-25

webpdf für VMware SoftVision Development GmbH Kurfürstenstraße 15 36037 Fulda, Deutschland Tel.: +49 (0)661 25100-0 Fax: +49 (0)661 25100-25 webpdf für VMware SoftVision Development GmbH Kurfürstenstraße 15 36037 Fulda, Deutschland Tel.: +49 (0)661 25100-0 Fax: +49 (0)661 25100-25 E-Mail: sales@softvision.de Web: www.softvision.de Inhaltsverzeichnis

Mehr

Programmierkurs: Delphi: Einstieg

Programmierkurs: Delphi: Einstieg Seite 1 von 6 Programmierkurs: Delphi: Einstieg Aus Wikibooks Inhaltsverzeichnis 1 Einstieg Einstieg Was ist Delphi Borland Delphi ist eine RAD-Programmierumgebung von Borland. Sie basiert auf der Programmiersprache

Mehr

Zum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans...

Zum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans... Erste Schritte Dieser Teil der Veranstaltung gibt einen ersten Eindruck der Programmierung mit C++. Es wird ein erstes Gefühl von Programmiersprachen vermittelt, ohne auf die gezeigten Bestandteile genau

Mehr

GDI-Knoppix 4.0.2 - Erste Schritte. Werner Siedenburg werner.siedenburg@student.fh-nuernberg.de Stand: 04.05.2006

GDI-Knoppix 4.0.2 - Erste Schritte. Werner Siedenburg werner.siedenburg@student.fh-nuernberg.de Stand: 04.05.2006 GDI-Knoppix 4.0.2 - Erste Schritte Werner Siedenburg werner.siedenburg@student.fh-nuernberg.de Stand: 04.05.2006 Dieses Dokument beschreibt elementare Dinge im Umgang mit Knoppix. Knoppix ist ein "Live-Linux".

Mehr

Virtualisierung mit Virtualbox

Virtualisierung mit Virtualbox Virtualisierung mit Virtualbox Dies ist kein Howto im herkömmlichen Sinne. Genaue Anleitungen für Virtualbox gibt es im Intenet genug. Zu empfehlen ist auch das jeweils aktuelle Handbuch von Virtualbox

Mehr

Einführung zu den Übungen aus Softwareentwicklung 1

Einführung zu den Übungen aus Softwareentwicklung 1 Einführung zu den Übungen aus Softwareentwicklung 1 Dipl.-Ing. Andreas Riener Universität Linz, Institut für Pervasive Computing Altenberger Straße 69, A-4040 Linz riener@pervasive.jku.at SWE 1 // Organisatorisches

Mehr

Java Einführung Programmcode

Java Einführung Programmcode Java Einführung Programmcode Inhalt dieser Einheit Programmelemente Der erste Programmcode Die Entwicklungsumgebung: Sun's Java Software Development Kit (SDK) Vom Code zum Ausführen des Programms 2 Wiederholung:

Mehr

1. Vorbereiten das Host, folgende Software Pakete müssen installiert werden: gnome-devel bison flex texinfo libncurses5-dev git codeblocks putty

1. Vorbereiten das Host, folgende Software Pakete müssen installiert werden: gnome-devel bison flex texinfo libncurses5-dev git codeblocks putty 1. Vorbereiten das Host, folgende Software Pakete müssen installiert werden: gnome-devel bison flex texinfo libncurses5-dev git codeblocks putty 2. Buildroot installieren Buildroot (www.buildroot.org)

Mehr

Installationsanleitung für R

Installationsanleitung für R Installationsanleitung für R R ist eine Programmiersprache und Statistiksoftware zur Analyse von Daten und deren graphischer Darstellung. Um in R zu programmieren, ist zunächst die R- Basissoftware zu

Mehr

Anleitung zum Archive Reader. ab Version 2029 WWW.REDDOXX.COM

Anleitung zum Archive Reader. ab Version 2029 WWW.REDDOXX.COM Anleitung zum Archive Reader ab Version 2029 WWW.REDDOXX.COM Inhaltsverzeichnis 1. Einführung...4 1.1. Ziel dieses Dokumentes...4 1.2. Zielgruppe für wen ist dieses Dokument bestimmt...4 1.3. Hauptpunkte...4

Mehr

AnSyS.B4C. Anleitung/Dokumentation. für die Installation des Barcode-Hand-Scanners. Honeywell Voyager 1400g. AnSyS GmbH 2015.

AnSyS.B4C. Anleitung/Dokumentation. für die Installation des Barcode-Hand-Scanners. Honeywell Voyager 1400g. AnSyS GmbH 2015. AnSyS.B4C Anleitung/Dokumentation für die Installation des Barcode-Hand-Scanners Honeywell Voyager 1400g (unter Windows) AnSyS GmbH 2015 Seite 1 2015 AnSyS GmbH Stand: 29.09.15 Urheberrecht und Gewährleistung

Mehr

http://www.stud.uni-potsdam.de/~hoeffi/gdb.html#wozu

http://www.stud.uni-potsdam.de/~hoeffi/gdb.html#wozu gdb: debugging code In der Vorlesung hatte ich Teile von http://www.stud.uni-potsdam.de/~hoeffi/gdb.html#wozu und ein eigenes Beispiel diskutiert. Ein Debugger soll helfen Fehler im Programm, die sich

Mehr

Installationsanleitung Tivoli Storage Manager für Linux

Installationsanleitung Tivoli Storage Manager für Linux 11. März 2009, Version 1.0 Installationsanleitung für Linux Verwaltungsdirektion Informatikdienste Installationsanleitung für Linux Inhaltsverzeichnis...1 Installation... 1 Voraussetzungen...1 Ablauf der

Mehr

Anwenderdokumentation PersoSim

Anwenderdokumentation PersoSim Anwenderdokumentation PersoSim Die nachfolgende Anwenderdokumentation soll dem Anwender bei der Installation und den ersten Schritten im Umgang mit PersoSim helfen. Installation Grundvoraussetzung für

Mehr

Enigma2 Plugin Entwicklung mit Eclipse

Enigma2 Plugin Entwicklung mit Eclipse Enigma2 Plugin Entwicklung mit Eclipse Enigma2 Plugin Entwicklung mit Eclipse 1/15 Inhaltsverzeichnis 1 ÜBER... 3 2 INSTALLATION... 4 2.1 INSTALLATION VON ECLIPSE... 4 2.2 INSTALLATION VON PYDEV... 4 3

Mehr

C-Programmierung mit Eclipse

C-Programmierung mit Eclipse Fakultät für Maschinenbau und Mechatronik C-Programmierung mit Eclipse Prof. Dr.-Ing. Reiner Kriesten Michael Lautenschläger B.Eng. 18. September 2012 Inhaltsverzeichnis 1 Einleitung 1 1.1 Integrierte

Mehr

C# Tutorial Part 1. Inhalt Part 1. Einleitung. Vorbereitung. Eagle Eye Studios. Einleitung Vorbereitung Das erste Projekt

C# Tutorial Part 1. Inhalt Part 1. Einleitung. Vorbereitung. Eagle Eye Studios. Einleitung Vorbereitung Das erste Projekt Eagle Eye Studios C# Tutorial Part 1 Inhalt Part 1 Einleitung Vorbereitung Das erste Projekt Einleitung Wer sich mit dem Programmieren schon einigermaßen auskennt, kann diesen Abschnitt überspringen. Programmieren,

Mehr

Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2

Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2 Erstellung eines SharkNet Installers für Windows mit Inno Setup Compiler 5.4.2 1. Benötigte Software Zur Erstellung des Installers wird folgende Software benötigt. Es wird sich in dieser Dokumentation

Mehr

Bedienung von BlueJ. Klassenanzeige

Bedienung von BlueJ. Klassenanzeige Im Folgenden werden wichtige Funktionen für den Einsatz von BlueJ im Unterricht beschrieben. Hierbei wird auf den Umgang mit Projekten, Klassen und Objekten eingegangen. Abgeschlossen wird dieses Dokument

Mehr

Einführung in Automation Studio

Einführung in Automation Studio Einführung in Automation Studio Übungsziel: Der links abgebildete Stromlaufplan soll mit einer SPS realisiert werden und mit Automation Studio programmiert werden. Es soll ein Softwareobjekt Logik_1 in

Mehr

Tutorium 1 Systemadministration 2 - Linux Universität Hildesheim

Tutorium 1 Systemadministration 2 - Linux Universität Hildesheim Tutorium 1 Systemadministration 2 - Linux Universität Hildesheim Jens Rademacher 16.06.2014 1. Theorie: Verzeichnisbaum Eine Auswahl einiger Verzeichnisse. / # Root-Verzeichnis /home/ # Enthält alle Home-Verzeichnisse

Mehr

PIWIN 1 Übung Blatt 5

PIWIN 1 Übung Blatt 5 Fakultät für Informatik Wintersemester 2008 André Gronemeier, LS 2, OH 14 Raum 307, andre.gronemeier@cs.uni-dortmund.de PIWIN 1 Übung Blatt 5 Ausgabedatum: 19.12.2008 Übungen: 12.1.2009-22.1.2009 Abgabe:

Mehr

Bogobit Digimux mit Viessmann Multiplex-Signalen und Märklin Central Station 2

Bogobit Digimux mit Viessmann Multiplex-Signalen und Märklin Central Station 2 Bogobit Digimux mit Viessmann Multiplex-Signalen und Märklin Central Station 2 1 Ein neues Signal in der CS2 anlegen Führen Sie die folgenden Schritte aus, um ein neues Signal in der CS2 anzulegen und

Mehr

Erste Schritte mit dem Qt Creator

Erste Schritte mit dem Qt Creator GUI-Anwendungen mit C++-Bibliothek Qt Qt-Creator 1 Erste Schritte mit dem Qt Creator Diese Beschreibung wendet sich an Anfänger, die noch nie mit der Entwicklungsumgebung (IDE) Qt Creator gearbeitet haben.

Mehr

AVR-Programmierung unter Mac OSX

AVR-Programmierung unter Mac OSX AVR-Programmierung unter Mac OSX im Studiengang BEL3 Lehrveranstaltung Embedded Systems Tutorial ausgeführt von: Jürgen Hausladen A-2460 Bruck/Leitha, Obere Neugasse 6 Wien 01.02.2011 Inhaltsverzeichnis

Mehr

Installation und Benutzung AD.NAV.ZipTools

Installation und Benutzung AD.NAV.ZipTools Installation und Benutzung AD.NAV.ZipTools Version 1.0.0.0 ALTENBRAND Datentechnik GmbH Am Gelicht 5 35279 Neustadt (Hessen) Tel: 06692/202 290 Fax: 06692/204 741 email: support@altenbrand.de Die Komponente

Mehr

Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein.

Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein. Pfade einstellen Stand: Dezember 2012 Diese Anleitung bezieht sich auf FixFoto, V 3.40. In älteren oder neueren Versionen könnte die Arbeitsweise anders sein. Diese Anleitung soll zeigen, wie man Pfad-Favoriten

Mehr

Tutorium Java Ein Überblick. Helge Janicke

Tutorium Java Ein Überblick. Helge Janicke Tutorium Java Ein Überblick Helge Janicke 26. Oktober 2000 1 VORRAUSSETZUNGEN ZUM PROGRAMMIEREN MIT JAVA. 1 1 Vorraussetzungen zum Programmieren mit Java. Was braucht man, wenn man mit Java programmieren

Mehr

L4. Erster Schritt zum Programmieren

L4. Erster Schritt zum Programmieren L4. Erster Schritt zum Programmieren 1 Programmierung in Hoch Beispielprogramme in FORTRAN, PASCAL und C Die Programmiersprache C Erstellung und Übersetzung eines C-Programms Das Programm Hello World Eingabe

Mehr

ab Redirector-Version 2.14

ab Redirector-Version 2.14 Installation: FilterSurf ab Redirector-Version 2.14 Hier werden nun die Schritte erläutert, die nacheinander zu durchlaufen sind, um einen der zentralen FilterSurf -Server verwenden zu können. Die Installationsschritte

Mehr

Installation der kostenlosen Testversion

Installation der kostenlosen Testversion Installation der kostenlosen Testversion Datenbank einrichten Installieren Trial-Lizenz aktivieren Bei Fragen nutzen Sie bitte unseren kostenlosen Support: Telefon: +49 (30) 467086-20 E-Mail: Service@microTOOL.de

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen

Mehr

GS-Programme 2015 Umzug auf einen neuen Computer

GS-Programme 2015 Umzug auf einen neuen Computer GS-Programme 2015 Umzug auf einen neuen Computer Impressum Business Software GmbH Primoschgasse 3 9020 Klagenfurt Copyright 2014 Business Software GmbH Die Inhalte und Themen in dieser Unterlage wurden

Mehr

Übungspaket 19 Programmieren eigener Funktionen

Übungspaket 19 Programmieren eigener Funktionen Übungspaket 19 Programmieren eigener Funktionen Übungsziele: Skript: 1. Implementierung und Kodierung eigener Funktionen 2. Rekapitulation des Stack-Frames 3. Parameterübergabe mittels Stack und Stack-Frame

Mehr

Hello world. Sebastian Dyroff. 21. September 2009

Hello world. Sebastian Dyroff. 21. September 2009 Hello world Sebastian Dyroff 21. September 2009 1 / 35 Inhaltsverzeichnis Organisatorisches Hello World Typen und Operatoren Programmfluss Weitere Konstrukte Nützliche Tipps 2 / 35 Inhalte dieser Veranstaltung

Mehr

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik

Programmieren I. Die Programmiersprache Java. www.kit.edu. Institut für Angewandte Informatik Programmieren I Die Programmiersprache Java KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Eigenschaften von Java Java ist eine

Mehr

ISBN 978-3-8272-4779-7 Print; 978-3-86325-508-4 PDF; 978-3-86325-109-3 epub

ISBN 978-3-8272-4779-7 Print; 978-3-86325-508-4 PDF; 978-3-86325-109-3 epub Bibliografische Information der Deutschen Nationalbibliothek Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind

Mehr

Zeiterfassung-Konnektor Handbuch

Zeiterfassung-Konnektor Handbuch Zeiterfassung-Konnektor Handbuch Inhalt In diesem Handbuch werden Sie den Konnektor kennen sowie verstehen lernen. Es wird beschrieben wie Sie den Konnektor einstellen und wie das System funktioniert,

Mehr

2 GRUNDLEGENDE PROGRAMMBEDIENUNG

2 GRUNDLEGENDE PROGRAMMBEDIENUNG In diesem Kapitel erfahren Sie, wie das Textverarbeitungsprogramm Microsoft Word 2007 gestartet wird, wie Sie bestehende Dokumente öffnen und schließen oder Dokumente neu erstellen können. Es wird erläutert,

Mehr

crm-now/ps Anwenderhandbuch für die Thunderbird Erweiterung Zweite Ausgabe

crm-now/ps Anwenderhandbuch für die Thunderbird Erweiterung Zweite Ausgabe crm-now/ps Anwenderhandbuch für die Thunderbird Erweiterung Zweite Ausgabe crm-now/ps: Copyright 2006 crm-now Versionsgeschichte Version 02 08.09.2006 Release Version Version 01 16.06.2005 crm-now c/o

Mehr

Installation unter LINUX mit PostgreSQL DB

Installation unter LINUX mit PostgreSQL DB Installation unter LINUX mit PostgreSQL DB Inhaltsverzeichnis 1. Installation und Konfiguration der PostgreSQL Datenbank... 3 2. Installation von Intrexx Xtreme 4.5... 5 Schreibkonventionen In diesem Handbuch

Mehr

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper Python Programmierung Kontaktdaten Homepage: http://wwwlehre.dhbw-stuttgart.de/~schepper/ Email: Volker. Schepper [A@T] yahoo.de Vorlesung Skriptsprachen Vorlesung: 06.03.2013 13.03.2013 20.03.2013 27.03.2013

Mehr

Programmierung und Angewandte Mathematik

Programmierung und Angewandte Mathematik Programmierung und Angewandte Mathematik Einleitung von Visual Studio C++ SS 2012 Miscrosoft Visual studio C++ Express unterladen 2 weiter Gehen Sie auf die im Rote gekreiste Seite siehe Oben bzw. auf

Mehr

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome

Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome Anleitung für zwei C++ - Openmp - Beispiele auf der NWZSuperdome (Timo Heinrich, t_hein03@uni-muenster.de) Inhaltsverzeichnis: 0.Einleitung 1.Teil: Helloworldprogramm 1.1 Quellcode: Helloworld.cpp 1.2

Mehr

http://www.cis.upenn.edu/~bcpierce/unison/download/stable/unison- 2.9.1/

http://www.cis.upenn.edu/~bcpierce/unison/download/stable/unison- 2.9.1/ Einführung Was ist Unison? Unison ist ein Dateisynchronisationsprogramm für Windows und Unix. Es teilt sich viele Funktionen mit anderen Programmen, wie z.b. CVS und rsync. Folgend einige Vorteile des

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

Grundlagen. Kapitel 1 Grundlagen Dieses Kapitel umfasst grundlegende Fragen und Aufgaben zur Erstellung von C++-Programmen. Hierzu zählen auch das Inkludieren von Header-Dateien Eine Header-Datei beinhaltet Informationen, die

Mehr

Erste Schritte mit HG 2

Erste Schritte mit HG 2 Erste Schritte mit HG 2 Malte Ried FH-Gießen Version: 1.0 21. November 2003 Inhaltsverzeichnis 1 Einführung 2 2 Allgemeines 2 2.1 Koordinaten...................................... 2 2.2 Farben.........................................

Mehr

Material zum Grundlagenpraktikum ITS. eine kleine Linux-Befehlsreferenz. Stand: Oktober 2007 zusammengestellt von: Cornelia Menzel Version 1.

Material zum Grundlagenpraktikum ITS. eine kleine Linux-Befehlsreferenz. Stand: Oktober 2007 zusammengestellt von: Cornelia Menzel Version 1. Material zum Grundlagenpraktikum ITS eine kleine Linux-Befehlsreferenz Stand: Oktober 2007 zusammengestellt von: Cornelia Menzel Version 1.0 Lehrstuhl für Netz- und Datensicherheit Ruhr-Universität Bochum

Mehr

Anleitung Gen2VDR Installationsanleitung für REYCOM. Gen2VDR Installationsanleitung für REYCOM

Anleitung Gen2VDR Installationsanleitung für REYCOM. Gen2VDR Installationsanleitung für REYCOM 1 Gen2VDR Installationsanleitung für REYCOM 2 Anleitung Gen2VDR Installationsanleitung für REYCOM Inhaltsverzeichnis 1 Allgemein... 3 1.1 Systemvoraussetzungen... 3 2 Installation... 4 2.1 Download der

Mehr

DDBAC-SDK unter Linux (mit Wine) Installationsanleitung

DDBAC-SDK unter Linux (mit Wine) Installationsanleitung DDBAC-SDK unter Linux (mit Wine) Installationsanleitung Installation von Wine Einleitung Übersicht Titel Thema Datei DDBAC-SDK unter Linux (mit Wine) Installationsanleitung DDBAC_Wine_Installation.doc

Mehr

DLLs (dynamic loaded libraries) mit MingW erstellen

DLLs (dynamic loaded libraries) mit MingW erstellen DLLs (dynamic loaded libraries) mit MingW erstellen Autor: Michel D. Schmid Datum: April 2, 2009 Contents 1 Einführung 1 1.1 Open-Source Tools.......................................... 1 2 Beispiel 1:

Mehr

GNU Octave GRUNDLAGEN MARCUS SCHÜTTLER. HTW BERLIN s0532059

GNU Octave GRUNDLAGEN MARCUS SCHÜTTLER. HTW BERLIN s0532059 2014 GNU Octave GRUNDLAGEN MARCUS SCHÜTTLER HTW BERLIN s0532059 Inhaltsverzeichnis Was ist Octave?... 2 GNU Octave... 2 Octave-Forge... 2 qtoctave... 2 Octave Einrichtung... 2 Installation... 2 Linux...

Mehr

Computergrafik 1 Übung, Wintersemester 2011. Eclipse Hands-On. C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10.

Computergrafik 1 Übung, Wintersemester 2011. Eclipse Hands-On. C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10. Computergrafik 1 Übung, Wintersemester 2011 Eclipse Hands-On C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10.12 1 Eclipse - Die IDE 1. Entwicklungsumgebung (IDE) herunterladen / installieren

Mehr

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

Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG Einstellungen im Internet-Explorer (IE) (Stand 11/2013) für die Arbeit mit IOS2000 und DIALOG Um mit IOS2000/DIALOG arbeiten zu können, benötigen Sie einen Webbrowser. Zurzeit unterstützen wir ausschließlich

Mehr

objectif Installation objectif RM Web-Client

objectif Installation objectif RM Web-Client objectif RM Installation objectif RM Web-Client Bei Fragen nutzen Sie bitte unseren kostenlosen Support: Telefon: +49 (30) 467086-20 E-Mail: Service@microTOOL.de 2014 microtool GmbH, Berlin. Alle Rechte

Mehr

Übung zu Grundlagen der Betriebssysteme. Einführungsveranstaltung 16.10.2012

Übung zu Grundlagen der Betriebssysteme. Einführungsveranstaltung 16.10.2012 Übung zu Grundlagen der Betriebssysteme Einführungsveranstaltung 16.10.2012 Termine Übungen wöchentlich, Dienstags 14 Uhr (c.t.), Raum E312 15 Uhr (s.t.), Raum E312 Jede Woche 1 Übungsblatt http://userpages.uni-koblenz.de/~mips/bs/uebung/

Mehr

Erste Schritte zum lauffähigen Java Programm

Erste Schritte zum lauffähigen Java Programm Erste Schritte zum lauffähigen Java Programm Diese kleine Einführung ist eine Hilfe für Studenten der Vorlesung SWT I zur Meisterung der sich ergebenden Hürden bei der Erstellung eines ersten kleinen Java-Programms.

Mehr

cs106 Informatiklabor Teil 1: Java-Installation

cs106 Informatiklabor Teil 1: Java-Installation Herbstsemester 2009 cs106 Informatiklabor Teil 1: Java-Installation Florian Zeller Vorgehen und Ziele Wöchentlich eine Übung Unterstützte Bearbeitung während den Übungsstunden Austausch mit älteren Semestern

Mehr

VisiScan 2011 für cobra 2011 www.papyrus-gmbh.de

VisiScan 2011 für cobra 2011 www.papyrus-gmbh.de Überblick Mit VisiScan für cobra scannen Sie Adressen von Visitenkarten direkt in Ihre Adress PLUS- bzw. CRM-Datenbank. Unterstützte Programmversionen cobra Adress PLUS cobra Adress PLUS/CRM 2011 Ältere

Mehr

Erste Schritte mit Elvis 3 ein Beispielprojekt

Erste Schritte mit Elvis 3 ein Beispielprojekt Erste Schritte mit Elvis 3 ein Beispielprojekt Um Sie mit Elvis 3 vertraut zu machen möchten wir mit Ihnen mit diesem Kapitel ein Beispielprojekt vom ersten Aufruf von Elvis 3 bis zum Testlauf aufbauen.

Mehr

DesignCAD 3D Max V23 Architekt

DesignCAD 3D Max V23 Architekt 70382-6 HB 02.10.13 09:50 Seite 1 DesignCAD 3D Max V23 Architekt Ø = Null O = Buchstabe Hotline: 0900 / 140 96 41 Mo.- Fr. 1200 bis 1800 Uhr. 0,44 Euro/Minute aus dem deutschen Festnetz, mobil ggf. abweichend.

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Ein Word-Dokument anlegen

Ein Word-Dokument anlegen 34 Word 2013 Schritt für Schritt erklärt Ein Word-Dokument anlegen evor Sie einen Text in Word erzeugen können, müssen Sie zunächst einmal ein neues Dokument anlegen. Die nwendung stellt zu diesem Zweck

Mehr

Bakefiles. TgZero Technik.Blosbasis.net. April 1, 2013

Bakefiles. TgZero Technik.Blosbasis.net. April 1, 2013 TgZero Technik.Blosbasis.net April 1, 2013 1 Inhaltsverzeichnis 1 Makefile 3 1.1 Was sind Makefiles?........................ 3 2 Bakefile 3 3 Aufbau einer Bakefile 4 3.1 Targets...............................

Mehr

Access und OpenOffice.org

Access und OpenOffice.org Access-Datenbanken in OpenOffice.org 1.1 einbinden Herausgegeben durch das OpenOffice.org Germanophone-Projekt Autoren Autoren vorhergehender Versionen Timo Kozlowski Alle in diesem Dokument erwähnten

Mehr

INSTALLATION ABACUS ABAWEBCLIENT

INSTALLATION ABACUS ABAWEBCLIENT INSTALLATION ABACUS ABAWEBCLIENT Mai 2005 / EMO v.2005.1 Diese Unterlagen sind urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdrucks und der Vervielfältigung der Unterlagen,

Mehr

SX3 PC Software rev. 0.99c

SX3 PC Software rev. 0.99c SX3 PC Software rev. 0.99c SX3 ist ein Programm zur Steuerung einer Selectrix Digitalzentrale unter Linux bzw. Windows. Mit SX3 haben Sie die Möglichkeit Selectrix -Loks zu fahren, Weichen zu Schalten

Mehr

Installation und Dokumentation. juris Autologon 3.1

Installation und Dokumentation. juris Autologon 3.1 Installation und Dokumentation juris Autologon 3.1 Inhaltsverzeichnis: 1. Allgemeines 3 2. Installation Einzelplatz 3 3. Installation Netzwerk 3 3.1 Konfiguration Netzwerk 3 3.1.1 Die Autologon.ini 3 3.1.2

Mehr

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren

Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren Installation einer C++ Entwicklungsumgebung unter Windows --- TDM-GCC und Eclipse installieren 1 32- oder 64-bit Windows feststellen In den nachfolgenden Schritten ist es nötig, dass Sie wissen, ob Sie

Mehr

Embedded-Linux-Seminare. Toolchains

Embedded-Linux-Seminare. Toolchains Embedded-Linux-Seminare Toolchains 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 Kopier-Rechte

Mehr

Installation und Registrierung von WinGAEB 3.5 unter Linux mit CrossOver Office

Installation und Registrierung von WinGAEB 3.5 unter Linux mit CrossOver Office Installation und Registrierung von WinGAEB 3.5 unter Linux mit CrossOver Office 1. WINGAEB UND LINUX... 2 1.1. Systemvoraussetzungen... 2 1.2. Anmerkungen... 2 2. DIE INSTALLATION VON WINGAEB... 3 2.1.

Mehr

Eclipse einrichten. Wechseln Sie in Ihr EclipseInstallationsverzeichnis... > cd $Eclipse_Verzeichnis$ >./eclipse. und starten Sie das Programm.

Eclipse einrichten. Wechseln Sie in Ihr EclipseInstallationsverzeichnis... > cd $Eclipse_Verzeichnis$ >./eclipse. und starten Sie das Programm. Eclipse einrichten Wechseln Sie in Ihr EclipseInstallationsverzeichnis... und starten Sie das Programm. Beim ersten Start von Eclipse werden Sie aufgefordert, Ihr Arbeitsverzeichnis zu wählen. Alle Ihre

Mehr

1. Java Grundbegriffe

1. Java Grundbegriffe 1. Java Grundbegriffe Geschichte von Java Programmieren mit Java Interpretieren vs. Kompilieren Java Byte-Code Jave Virtual Machine Arbeitsmaterialien Allgemeine Informatik 2 SS09 Folie 1.1 Java, eine

Mehr

INSTALLATION. Voraussetzungen

INSTALLATION. Voraussetzungen INSTALLATION Voraussetzungen Um Papoo zu installieren brauchen Sie natürlich eine aktuelle Papoo Version die Sie sich auf der Seite http://www.papoo.de herunterladen können. Papoo ist ein webbasiertes

Mehr

IMBA. Installationsanleitung. SQL Server-Datenbankadapter. Das Instrument für den fähigkeitsgerechten Personaleinsatz

IMBA. Installationsanleitung. SQL Server-Datenbankadapter. Das Instrument für den fähigkeitsgerechten Personaleinsatz Das Instrument für den fähigkeitsgerechten Personaleinsatz IMBA SQL Server-Datenbankadapter Installationsanleitung gefördert durch das Bundesministerium für Gesundheit und Soziale Sicherung Vorbereitung

Mehr

Installation der USB-Treiber in Windows

Installation der USB-Treiber in Windows Installation der USB-Treiber in Windows Die in diesem Benutzerhandbuch enthaltenen Angaben und Daten können ohne vorherige Ankündigung geändert werden. Soweit nicht anders angegeben, sind die in den Beispielen

Mehr

Wichtige Kommandozeilenbefehle & Handhabung des GUI Tivoli Storage Manager

Wichtige Kommandozeilenbefehle & Handhabung des GUI Tivoli Storage Manager 11. März 2009, Version 1.0 Verwaltungsdirektion Informatikdienste Wichtige Kommandozeilenbefehle & Handhabung des I n haltsverzeichnis...1 I nformationen zu diesem Dokument... 1 Starten der Programme...

Mehr

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

X Anmelden am System. X System herunterfahren. X Grundlegendes zur Shell. X Das Hilfesystem. X Dateioperationen. X Bewegen im Verzeichnisbaum /LQX[*UXQGODJHQ, (LQI KUXQJLQGLH6KHOO 'DWHLHQXQG 9HU]HLFKQLVVH :DVLVW]XWXQ" X Anmelden am System X System herunterfahren X Grundlegendes zur Shell X Das Hilfesystem X Dateioperationen X Bewegen im Verzeichnisbaum

Mehr