Linux/Unix- Systemprogrammierung

Größe: px
Ab Seite anzeigen:

Download "Linux/Unix- Systemprogrammierung"

Transkript

1

2 Helmut Herold Linux/Unix- Systemprogrammierung 3., aktualisierte Auflage An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam

3 Linux/Unix-Systemprogrammierung - PDF Inhaltsverzeichnis Linux/Unix-Systemprogrammierung - 3., aktualisierte Auflage Inhaltsverzeichnis Einleitung 1 Überblick über die Unix-Systemprogrammierung 2 Überblick über C89/C99 3 Standard-E/A-Funktionen 4 Elementare E/A-Funktionen 5 Dateien, Directories und ihre Attribute 6 Informationen zum System und seinen Benutzern 7 Datums- und Zeitfunktionen 8 Nicht-lokale Sprünge 9 Der Unix-Prozess 10 Die Prozesssteuerung 11 Attribute eines Prozesses (Kontrollterminal, Prozessgruppe und Session) 12 Blockierungen und Sperren von Dateien 13 Signale 14 STREAMS in System V 15 Fortgeschrittene Ein- und Ausgabe 16 Dämonprozesse 17 Pipes und FIFOs 18 Message-Queues, Semaphore und Shared Memory 19 Stream Pipes und einfache Client-Server-Realisierungen 20 Netzwerkprogrammierung mit Sockets 21 Threads 22 Terminal-E/A 23 Weitere nützliche Funktionen und Techniken 24 Wichtige Entwicklungswerkzeuge A Headerdatei eighdr.h undmodul fehler.c B Ausgewählte Lösungen zu den Übungen Literaturverzeichnis Stichwortverzeichnis Einleitung Gliederung dieses Buches Einführung in die Unix-Systemprogrammierung (Kapitel 1-2) Ein- und Ausgabe (Kapitel 3-5) Systeminformationen (Kapitel 6-7)

4 Nicht-lokale Sprünge (Kapitel 8) Prozesse (Kapitel 9-11) Sperren von Dateien (Kapitel 12) Signale (Kapitel 13) Besondere Arten von E/A (Kapitel 14-16) Interprozesskommunikation (Kapitel 17-19) Netzwerkprogrammierung mit Sockets (Kapitel 20) Threads (Kapitel 21) Terminal-E/A (Kapitel 22) Nützliche Funktionen und Techniken (Kapitel 23) Wichtige Entwicklungswerkzeuge (Kapitel 24) Anhang Literaturhinweise Unix-Standards und -Implementierungen Beispiele und Übungen Übungen am Ende jedes Kapitels Hinweis zu den Linux/Unix-Büchern von HelmutHerold 1 Überblick über die Unix-Systemprogrammierung 1.1 Anmelden am Unix-System /etc/passwd Shells 1.2 Dateien und Directories Dateistruktur Länge von Dateien Dateiarten Zugriffsrechte Dateinamen Dateisystem Root-Directory Working-Directory Home-Directory Parent-Directory Pfadnamen 1.3 Ein- und Ausgabe Filedeskriptoren Standardeingabe, Standardausgabe, Standardfehlerausgabe Standard-E/A-Funktionen (aus <stdio.h>) Elementare E/A-Funktionen (aus <unistd.h>) 1.4 Prozesse unter Unix Der Begriff Prozess Prozess-ID

5 1.4.3 Systemfunktionen zur Prozesssteuerung 1.5 Ausgabe von System-Fehlermeldungen perror Ausgabe der zu errno gehörenden Fehlermeldung strerror Erfragen der zu einer Fehlernummer gehörigen Meldung 1.6 Benutzerkennungen User-ID Group-ID 1.7 Signale 1.8 Zeiten in Unix Kalenderzeit und CPU-Zeit Prozesszeiten 1.9 Unterschiede zwischen Systemaufrufen und Bibliotheksfunktionen Systemaufrufe sind Systemkern-Schnittstellen Bibliotheksfunktionen sind keine Schnittstellen zum Kern 1.10 Unix-Standardisierungen und -Implementierungen Unix-Standardisierungen Unix-Implementierungen Headerdateien 1.11 Limits Optionen und Limits zur Kompilierungszeit (compile-time options and limits) Laufzeitlimits (run-time limits) C89/C99-Limits POSIX-Limits sysconf, pathconf und fpathconf Erfragen von Laufzeitlimits Überblick über die Limits Unbestimmte Laufzeitlimits Konstante _POSIX_SOURCE Primitive Systemdatentypen 1.12 Übung Primitive Systemdatentypen am aktuellen System 2 Überblick über C89/C Allgemeines Begriffsklärung Allgemeine Konventionen 2.2 Der Präprozessor #define Definieren von Konstanten und Makros #include Einkopieren ganzer Dateien Bedingte Kompilierung Weitere Präprozessordirektiven Von C89/C99 vordefinierte Makros

6 2.3 Die Sprache C89 bzw. C Grunddatentypen Datentyp void Die neuen Schlüsselwörter const und volatile Primitive Systemdatentypen Funktionsprototypen Ellipsen-Prototypen für Funktionen mit variabler Parameterzahl Abarbeiten variabel langer Argumentlisten 2.4 Die standardisierte C89-/C99-Bibliothek <assert.h> Testmöglichkeit mit der assert-funktion <ctype.h> Klassifizieren oder Umwandeln von Zeichen <errno.h> Anzeigen von Fehlersituationen durch Bibliotheksfunktionen <float.h> Limits und Eigenschaften für Gleitpunkt- Datentypen <limits.h> Limits für ganzzahlige Datentypen <math.h> Mathematische Funktionen <stdlib.h> Allgemein nützliche Funktionen <string.h> Umgang mit Zeichenketten Das neue C99-Schlüsselwort restrict für Zeiger 2.5 Übung Wertebereich der ganzzahligen Datentypen Duale Ausgabe von Gleitpunktzahlen Eigenschaften von Gleitpunkt-Datentypen Ausgabe einer Cos-, Sin- und Tan-Tabelle Runden auf eine beliebige Nachkommastellenzahl 3 Standard-E/A-Funktionen 3.1 Der Datentyp FILE 3.2 stdin, stdout und stderr 3.3 Öffnen und Schließen von Dateien fopen Öffnen einer Datei freopen Öffnen einer Datei mit bereits existierendem Stream fclose Schließen einer Datei 3.4 Lesen und Schreiben in Dateien feof und ferror Prüfen des EOF- und Fehler-Flags clearerr Löschen des Fehler- und EOF-Flags getchar Lesen eines Zeichen von stdin putchar Schreibeneines Zeichen auf stdout getc und fgetc Lesen eines Zeichens aus einer Datei putc und fputc Schreiben eines Ze ungetc Zurückschieben eines gelesenen Zeichens in Eingabepuffer gets/fgets Lesen ganzer Zeilen puts/fputs Schreiben ganzer Zeilen scanf und fscanf Formatiertes Lesen

7 3.4.8 printf und fprintf Formatiertes Schreiben sscanf Formatiertes Lesen aus einem String sprintf Formatiertes Schreiben in einen String vprintf und vfprintf Formatiertes Schreiben mit Argumentzeiger vsprintf Formatiertes Schreiben in einen String mit Argumentzeiger Neue printf-/scanf-funktionen in C fread und fwrite Binäres Lesen/Schreiben ganzer Blöcke Unterschiedliches Zeitverhalten von StandardE/A-Funktionen 3.5 Pufferung _IOFBF Vollpufferung _IOLBF Zeilenpufferung _IONBF Keine Pufferung Voreingestellte Pufferungsarten setbuf und setvbuf Einstellen der Pufferungsart fflush Inhalte von Puffern in eine Datei übertragen 3.6 Positionieren in Dateien fseek und ftell Positionieren in einer Datei (1. Möglichkeit) fsetpos und fgetpos Positionieren in einer Datei (2. Möglichkeit) rewind Positionieren an den Dateianfang 3.7 Temporäre Dateien tmpnam Einen eindeutigen Namen für eine temporäre Datei erzeugen tmpfile Eine temporäre Datei erzeugen und automatisch wieder löschen tempnam Das Erzeugen von temporären Dateinamen (mitdirectory- und Präfixvorgabe) 3.8 Löschen und Umbenennen von Dateien remove Löschen einer Datei rename Umbennen einer Datei 3.9 Ausgabe von Systemfehlermeldungen perror Ausgabe der zu errno gehörenden Fehlermeldung strerror Erfragen der zu einer Fehlernummer gehörendenfehlermeldung 3.10 Übung Buchstabenstatistik für Dateien Ausgeben von bestimmten Zeilen einer Datei Einfache Realisierung des Kommandos wc Schachtelungsanalyse für C-Programme 4 Elementare E/A-Funktionen 4.1 Filedeskriptoren 4.2 Öffnen und Schließen von Dateien open Öffnen einer Datei creat Anlegen einer neuen Datei close Schließen einer Datei

8 4.3 Lesen und Schreiben in Dateien read Lesen von einer Datei write Schreiben in eine Datei 4.4 Positionieren in Dateien lseek Positionieren des Schreib-/Lesezeigers in einer Datei 4.5 Effizienz von E/A-Operationen 4.6 Kerntabellen für offene Dateien Prozesstabelleneintrag Dateitabelle (file table) v-node-tabelle (v-node table) 4.7 File Sharing und atomare Operationen File Sharing Atomare Operationen 4.8 Duplizieren von Filedeskriptoren dup und dup2 Duplizieren von Filedeskriptoren 4.9 Ändern oder Abfragen der Eigenschaften einer offenen Datei fcntl Ändern und Abfragen der Einstellungen einer offenen Datei 4.10 Filedeskriptoren und der Datentyp FILE fileno Erfragen des zu einem FILE-Zeiger gehörigen Filedeskriptors fdopen Erzeugen eines FILE-Zeigers zu einem Filedeskriptor 4.11 Das Directory /dev/fd 4.12 Übung Anhängen einer Datei an eine andere Rückwärtiges Ausgeben einer Datei Duplizieren und mehrmaliges Öffnen derselben Datei Nachvollziehen einer Notation aus der Bourne- und Korn-Shell 5 Dateien, Directories und ihre Attribute 5.1 Dateiattribute Struktur stat stat, fstat und lstat Erfragen von Dateiattributen 5.2 Dateiarten 5.3 Zugriffsrechte einer Datei Einfache Zugriffsrechte für die drei Benutzerklassen Set-User-ID und Set-Group-ID Saved Set-User-ID und Saved Set-Group-ID Eigentümer von neuen Dateien Sticky-Bit (Saved-Text-Bit) chmod und fchmod Ändern der Zugriffsrechte für eine Datei access Zugriffserlaubnis für reale User-/Group-ID auf eine Datei umask Setzen und Abfragen der Dateikreierungsmasken

9 5.4 Eigentümer und Gruppe einer Datei chown, fchown und lchown Ändern der User-ID und Group-ID einer Datei 5.5 Partitionen, Filesysteme und i-nodes Filesysteme Partitionen und Filesysteme Der i-node Hard-Links link Erzeugen eines Links auf eine existierende Datei unlink Entfernen eines Dateinamens aus einem Directory 5.6 Symbolische Links symlink Anlegen eines symbolischen Link readlink Erfragen des Namens, auf den ein symbolischer Link zeigt 5.7 Größe einer Datei truncate und ftruncate Abschneiden von Dateien Löcher in Dateien 5.8 Zeiten einer Datei utime und utimes Ändern der Zugriffs- und Modifikationszeit 5.9 Directories Zugriffsrechte für Directories mkdir Anlegen eines neuen Directorys rmdir Löschen eines leeren Directorys chdir und fchdir Wechseln in ein neues Directory getcwd Erfragen des Working-Directory-Pfadnamens struct dirent Aufbau eines Eintrags in einer Directory-Datei opendir, readdir, rewinddir und closedir Lesen von Directories 5.10 Gerätedateien 5.11 Der Puffercache sync und fsync Schreiben des Puffercaches 5.12 Übung Ermitteln der Größe von Dateien Ausgeben der Attribute von Dateien Makro S_ISLNK für SVR Ändern der Zugriffrechte existierender Dateien mit creat oder open Relatives Ändern der Zugriffs- und Modifikationszeiten von Dateien unlink und Zeit der letzten i-node-änderung Maximale Tiefe eines Directory-Baums Root-Directory eines Prozesses Suchen eines Dateinamens im Directory-Baum 6 Informationen zum System und seinen Benutzern 6.1 Informationen aus der Passwortdatei

10 6.1.1 Passwortdatei /etc/passwd getpwuid und getpwnam Erfragen eines /etc/passwd- Eintrags über UID bzw. Loginnamen getpwent, setpwent und endpwent Sukzessives Erfragen aller /etc/passwd-einträge /etc/shadow 6.2 Informationen aus der Gruppendatei Gruppendatei /etc/group getgrgid und getgrnam Erfragen eines /etc/group-eintrags über GID bzw. Loginnamen getgrent, setgrent und endgrent Sukzessives Erfragen aller /etc/group-einträge getgroups, setgroups und initgroups Erfragen und Setzen von Zusatz-GIDs 6.3 Informationen aus Netzwerkdateien 6.4 Informationen zum lokalen System uname Erfragen von Informationen zum lokalen System gethostname Erfragen des Hostnamens in einem TCP/IP- Netzwerk 6.5 Informationen zu Systemanmeldungen 6.6 Übung Ausgeben von allen Loginnamen und Passwörtern Ausgeben von Informationen zum lokalen System Ausgeben von Netzwerkinformationen Ausgeben aller momentan angemeldeten Benutzer Ausgeben von Informationen zu bestimmten Benutzern Ausgeben von Informationen zu bestimmten Gruppen Implementierung des Kommandos id 7 Datums- und Zeitfunktionen 7.1 Datentypen und Konstanten Datentypen Konstanten 7.2 Datums- und Zeitfunktionen time und gettimeofday Erfragen der momentanen Kalenderzeit gmtime und localtime Umwandeln von time_t-zeit in struct tm-zeit mktime Umwandeln von struct tm-zeit in time_t-zeit asctime und ctime Umwandeln von struct tm- und time_t-zeit in date-string strftime Umwandeln einer struct tm-zeit in formatierten benutzerdefinierten String TZ Environment Variable für die Zeitzone difftime Ermitteln der Differenz zwischen zwei Uhrzeiten clock Erfragen der seit Programmstart verbrauchten CPU-Zeit Die Zeitgrenzen

11 7.3 Übung Simulieren einer digitalen Uhr Umsetzen des Kommandos cal Ausgabe der Zeit und des Datums in eigenem Format 8 Nicht-lokale Sprünge 8.1 Die Headerdatei <setjmp.h> setjmp und longjmp Springen über Funktionsgrenzen hinweg Automatic-, register-, static- und volatile-variable bei nicht-lokalen Sprüngen 8.2 Übung Mehrfaches Aufrufen von setjmp Rückkehr zu einer nicht mehr im Stack vorhandenen Funktion 9 Der Unix-Prozess 9.1 Start eines Unix-Prozesses Startup-Routine Startadresse eines Programms main Benutzerdefinierter Startpunkt eines Programms 9.2 Beendigung eines Unix-Prozesses Exit-Status eines Prozesses Normales Beenden der Funktion main mit return exit Normales Beenden eines Programms mit cleanup _exit Normales Beenden eines Programms ohne cleanup atexit Einrichten von Exithandlern Start und Beendigung eines Benutzerprozesses 9.3 Environment eines Unix-Prozesses Evironment-Liste Zugriff auf die ganze Environment-Liste getenv Erfragen des Werts einer einzelnen Environment- Variablen putenv, setenv und unsetenv Ändern, Hinzufügen oder Löschen von Environment-Variablen 9.4 Speicherbelegung eines Unix-Prozesses Unix-Prozess im Hauptspeicher malloc, calloc, realloc Dynamisches Anfordern von Speicherplatz free Freigeben von dynamisch angefordertem Speicherplatz alloca Dynamisches Anfordern von Speicherplatz im Stack 9.5 Ressourcenlimits eines Unix-Prozesses getrlimit und setrlimit Erfragen und Setzen der Ressourcenlimits 9.6 Ressourcenbenutzung eines Unix-Prozesses 9.7 Übung Ändern des Environment eines Elternprozesses nicht möglich Zugriff auf Adresse 0 des Datensegments meist nicht erlaubt

12 9.7.3 Gefahren bei der Verwendung von lokalen Variablen Eigene Implementierung von getenv, putenv, setenv und unsetenv Automatisches Erstellen von Bundesliga-Tabellen 10 Die Prozesssteuerung 10.1 Prozesskennungen und die Unix- Prozesshierarchie Prozess-IDs getpid und getppid Erfragen der PID und PPID getuid und geteuid Erfragen der realen und effektiven User-ID getgid und getegid Erfragen der realen und effektiven Group-ID Unix-Prozesshierarchie 10.2 Kreieren von neuen Prozessen fork Kreieren eines neuen Prozesses Unterschiede zwischen Eltern- und Kindprozess Vererbungen eines Elternprozesses an seinen Kindprozess Typische Anwendungen für fork vfork Kreieren eines Prozesses mit anschließendem exec-aufruf clone Ein fork (unter Linux) mit einer gemeinsamen Ressourcennutzung durch Eltern- und K Warten auf Beendigung von Prozessen Arten von Beendigungen eines Prozesses Verwaiste Kindprozesse Zombie-Prozesse wait und waitpid Warten auf die Beendigung eines Prozesses Verhindern von Zombies wait3 und wait4 Warten auf Ende eines Prozesses (Information über benutzte Ressourcen) 10.4 Synchronisationsprobleme zwischen Eltern- und Kindprozessen Synchronisation von Eltern- und Kindprozess mit Signalen 10.5 Die exec-funktionen Unterschiede der exec-funktionen im Überblick Interpretation des Dateinamens (bei execlp und execvp) Unterschiede in der Form der Argumentübergabe Unterschiede bei Benutzung des Environment Vererbungen bei exec 10.6 Die Funktion system 10.7 Ändern der User-ID und Group-ID eines Prozesses setuid und setgid Ändern der realen und effektiven User- ID und Group-ID saved Set-User-ID-Bit Zeitweises Ein-/Ausschalten des Set- User-ID-Mechanismus seteuid und setegid Ändern der effektiven User-ID bzw. Group-ID

13 setreuid und setregid Vertauschen der realen und effektiven User-/Group-ID Überblick über die unterschiedlichen Funktionen zum Setzen der User-IDs setfsuid und setfsgid Setzen der User-/Group-IDs für Filesystemzugriffe unter Linux 10.8 Informationen zu Prozessen times Erfragen der von einem Prozess verbrauchten Zeit getlogin Erfragen des Namens des Prozesseigentümers Buchführung bei Prozessen (process accounting) 10.9 Übung Kreieren eines Zombies Ausgeben der Ziffern von Zahlen als Wörter Vorsicht bei Aufruf von vfork in einer anderen Funktion als main Erfragen der eigenen saved Set-User-ID durch einen Prozess Ausgeben der Prozesshierarchie in Baumform 11 Attribute eines Prozesses (Kontrollterminal, Prozessgruppe und Session) 11.1 Prozessgruppen Prozessgruppen-ID Prozessgruppenführer (process group leader) Lebensdauer einer Prozessgruppe getpgrp/getpgid Erfragen der Prozessgruppen-ID setpgid Setzen der Prozessgruppen-ID 11.2 Session setsid Einrichten einer neuen Session 11.3 Kontrollterminals, Sessions und Prozessgruppen /dev/tty Gerätedatei für das Kontrollterminal tcgetpgrp und tcsetpgrp Erfragen und Setzen der Vordergrund-Prozessgruppen-ID 11.4 Jobkontrolle und Programmausführung durch die Shell Allgemeines zur Jobkontrolle Tastenkombinationen zur Jobkontrolle Lesen vom Terminal durch Hintergrundprozesse (mit Jobkontrolle) Lesen vom Kontrollterminal durch Hintergrundprozesse (ohne Jobkontrolle) Schreiben auf Terminal durch Hintergrundprozesse Ausführung von Programmen durch eine Shell ohne Jobkontrolle Ausführung von Programmen durch eine Shell mit Jobkontrolle 11.5 Verwaiste Prozessgruppen 11.6 Übung Kreieren einer neuen Session durch einen Kindprozess Kontrollterminal für eine verwaiste Prozessgruppe

14 12 Blockierungen und Sperren von Dateien 12.1 Blockierende und nichtblockierende E/A- Operationen Blockierende E/A-Operationen Nichtblockierende E/A-Operationen 12.2 Sperren von Dateien (record locking) Sperren von Dateien oder Dateibereichen mittels fcntl Einrichten, Freigeben und Testen von Sperren Blockierung (Deadlock) durch gegenseitiges Aussperren Sperren für Dämonen Mögliche Probleme beim Sperren bis zum Dateiende Vererbung von Sperren Starke Sperren (mandatory locking) in SVR4 13 Signale 13.1 Das Signalkonzept und die Funktion signal Das Signalkonzept signal Einrichten von Signalhandlern Signale und Kindprozesse Signale und die exec-funktion Begriffe rund um das Signalkonzept 13.2 Signalnamen und Signalnummern Signalnamen sys_siglist und psignal Signalbeschreibungen 13.3 Probleme mit der signal-funktion Erfragen des aktuellen Signalstatus ohne Änderung nicht möglich Zeitspanne zwischen Auftreten eines Signals und Aufruf der signal-funktion Endlosschleifen beim Warten auf das Eintreten von Signalen 13.4 Das neue Signalkonzept Signalmengen sigaction Einrichten und Erfragen von Signalhandlern Struktur sigaction Nachbildung der signal-funktion mit sigaction sigprocmask Erfragen oder Ändern einer Signalmaske sigpending Erfragen von blockierten Signalen, die momentan hängen Erlaubte Systemaufrufe in Signalhandlern (Reentrant- Funktionen) 13.5 Senden von Signalen mit den Funktionen kill und raise raise Senden eines Signals an den eigenen Prozess kill Senden eines Signals an einen anderen Prozess oder Prozessgruppe 13.6 Einrichten einer Zeitschaltuhr und Suspendieren eines Prozesses alarm und setitimer Einrichten von Zeitschaltuhren pause Suspendieren eines Prozesses (bis Eintreffen eines Signals)

15 sleep, usleep, select und nanosleep Suspendieren eines Prozesses (für eine bestimmte Zeit) Mögliche Implementierungen für sleep sigsetjmp und siglongjmp setjmp und longjmp für Signalhandler sigsuspend Suspendieren eines Prozesses während der Änderung der Signalmaske Schützen eines kritischen Codeausschnitts vor Unterbrechung durch Signale Synchronisation von Prozessen mit Signalen sleep3 Eine zuverlässige Implementierung von sleep 13.7 Anormale Beendigung mit Funktion abort Mögliche Implementierung von abort 13.8 Zusätzliche Argumente für Signalhandler Zusätzliche Argumente für Signalhandler in SVR Zusätzliche Argumente für Signalhandler in BSD 13.9 Übung Implementierung der Funktion raise Nicht-lokaler Sprung unmittelbar nach alarm Umständliche Beendigung bei der abort-implementierung Aufruf einer Nicht-reentrant-Funktion im Signalhandler Implementierung der Signalmengenfunktionen Implementierung der Funktion system mit Signalhandler Warten auf das Ende aller Kindprozesse (Signal SIGCHLD) Kindprozess nur für gewisse Zeit ausführen lassen 14 STREAMS in System V 14.1 Allgemeines zu STREAMS 14.2 STREAM-Messages Daten und Kontrollinformationen Message-Typen Message-Prioritäten putmsg und putpmsg Schicken einer Message an einen STREAM getmsg und getpmsg Lesen einer Message aus einem STREAM ioctl Ausführen der unterschiedlichsten Operationen auf STREAMS isastream Überprüfen, ob Filedeskriptor ein STREAM ist Ausgeben der Steuermodule eines STREAMS Schreibmodus für STREAMS Lesemodus für STREAMS 14.3 Übung Anzahl der verschiedenen Arten von Informationen bei getmsg 15 Fortgeschrittene Ein- und Ausgabe 15.1 E/A-Multiplexing

16 Aufteilen der Kommunikation auf mehrere Prozesse Polling Asynchrone E/A E/A-Multiplexing select E/A-Multiplexing in SVR4 und BSD delay Ein sleep für Mikrosekunden mit select pselect Eine neue Funktion von POSIX.1g poll E/A-Multiplexing für STREAMS in SVR delay2 Ein sleep für Millisekunden mit poll 15.2 Asynchrone E/A SVR4 Asynchrone E/A nur für STREAMS BSD-Unix Asynchrone E/A nur für Terminals und Netzwerkverbindungen 15.3 Memory Mapped I/O mmap Einrichten von Memory Mapped I/O munmap Aufheben von Memory Mapped I/O msync Aktualisieren der einem mapped-bereich zugeordneten Datei Sperren von Speicherbereichen Beispiel zu Memory Mapped I/O 15.4 Weitere read- und write-funktionen readv und writev Gleichzeitiges Lesen und Schreiben mit mehreren Puffern Besonderes Lesen und Schreiben auf speziellen Geräten 15.5 Übung Gegenüberstellung der Signalmengen- und Deskriptormengenfunktionen Ändern der Limits für Deskriptormengen Ermitteln der Kapazität einer Pipe mit select oder poll Zahlenwurzeln in den mapped-speicherbereich schreiben und wieder lesen E/A-Multiplexing für das Lesen aus zwei Pipes 16 Dämonprozesse 16.1 Typische Unix-Dämonen syslogd Dämon für Fehlermeldungen sendmail Mail-Dämon update Dämon zum regelmäßigen Schreiben des Puffer- Caches auf Festplatte cron Dämon zum regelmäßigen Ausführen von Kommandos inetd Netz-Dämon lpd Drucker-Dämon 16.2 Besonderheiten von Dämonen 16.3 Schreiben von eigenen Dämonen Umwandeln eines normalen Prozess in einen Dämonprozess 16.4 Fehlermeldungen von Dämonen

17 log STREAMS-Gerätetreiber in SVR syslog Error-Logging in BSD und Linux 16.5 Übung Schließen der Filedeskriptoren 0, 1 und 2 durch einen Dämonprozess Dämon zur Überwachung von neuen Anmeldungen 17 Pipes und FIFOs 17.1 Überblick über die unterschiedlichen Arten der Interprozesskommunikation 17.2 Pipes pipe Einrichten einer Pipe Zugriff auf eine Pipe mit Standard-E/A-Funktionen Leseseite einer Pipe in die Standardeingabe eines anderen Programms umleiten Synchronisation von Prozessen über Pipes popen und pclose Einrichten und Schließen einer Pipe zu einem anderen Programm Transformationen mittels Filterprogramme Koprozesse in der Korn-Shell Koprozesse in C Eventuelle Probleme mit Standard E/A-Pufferung bei Koprozessen 17.3 Benannte Pipes (FIFOs) mkfifo Kreieren einer benannten Pipe Regeln für FIFO-Zugriffe mkfifo Kommando zum Kreieren von FIFOs auf ShellEbene Verwendung von FIFOs zur Client-Server-Kommunikation 17.4 Übung Hexadump für Dateien (mit Eltern-Kind-Pipe) Starten eines Koprozesses ohne Signalhandler Lesen und Schreiben in einer Pipe mit Standard-E/A- Funktionen Implementierung von popen und pclose Parallele Matrizenmultiplikation durch mehrere Kindprozesse Kein Schließen der Schreibseite einer Pipe Gleichzeitiges Schreiben der Standardausgabe und -fehlerausgabe in Pipe 18 Message-Queues, Semaphore und Shared Memory 18.1 Allgemeine Strukturen und Eigenschaften Kennungen und Schlüssel Kommunikationsmöglichkeiten von nicht verwandten Prozessen Einrichten eines neuen Objekts Herstellen einer Verbindung zu einem existierenden Objekt Löschen von Objekten Zugriffsrechte Limits

18 18.2 Message-Queues msqid_ds Status einer Message-Queue Limits einer Message-Queue msgget Öffnen oder Kreieren einer Message-Queue msgsnd Senden von Messages msgrcv Empfangen von Messages msgctl Abfragen/Ändern des Status oder Löschen einer Message Queue Client-Server-Implementierung mit Message-Queues 18.3 Semaphore Synchronisation von kritischen Abschnitten mit Semaphore Eigenschaften vom System V-Semaphore semid_ds Status eines Semaphors Limits von Semaphormengen semget Öffnen oder Kreieren einer Semaphormenge semctl Abfragen/Ändern des Status oder Löschen einer Semaphormenge semop Durchführen von Operationen auf Semophormengen Realisierung der P- und V-Operationen von Dijkstra 18.4 Shared Memory shmid_ds Status eines Shared-Memory-Segments Limits shmget Öffnen oder Kreieren eines Shared-Memory- Segments shmctl Abfragen/Ändern des Status oder Löschen eines Shared-Memory-Segments shmat Anbinden eines Shared-Memory-Segments an einen Prozess shmdt Loslösen eines angebunden Shared-Memory- Segments Shared Memory zwischen verwandten Prozessen Client-Server-Implementierung mit Shared Memory und Semaphoren 18.5 Übung Adresse von angebundenem (attached) Shared Memory Unerlaubtes Lesen von Messages durch fremde Prozesse Kreieren von Message-Queues mit und ohne IPC_PRIVATE Wortstatistik zu einer Textdatei (Vorsicht mit internen Zeigern) 19 Stream Pipes und einfache Client-Server-Realisierungen 19.1 Client-Server-Eigenschaften der klassischen IPC-Methoden Client-Server-Realisierung mit Pipes Client-Server-Realisierung mit FIFOs Client-Server-Realisierung mit Message-Queues, Shared Memory und Semaphoren 19.2 Stream Pipes stream_pipe Realisierung einer Stream Pipe in SVR stream_pipe Realisierung einer Stream Pipe in BSD/Linux

19 Kommunikation mit einem Koprozess über Stream Pipe 19.3 Austausch von Filedeskriptoren zwischen verwandten Prozessen in SVR Client-Server-Realisierung mit verwandten Prozessen in SVR Client Server 19.5 Übung Parallele Matrizenmultiplikation durch mehrere Kindprozesse 20 Netzwerkprogrammierung mit Sockets 20.1 Allgemeines zu Netzwerken Das Kommunikationsmodell und wichtige Grundbegriffe Das ISO/OSI-Modell und TCP/IP-Protokolle Kommandos zum Testen des Netzwerks und der Hosts 20.2 Grundlagen der Socket-Programmierung Socketdeskriptoren Kreieren von lokalen Sockets Schließen von Sockets Referenzzähler bei duplizierten Sockets Ein lokales Client/Server-Beispiel Die Socket-Adressstruktur sockaddr_in für IPv Die Socket-Adressstruktur sockaddr_in6 für IPv Die Socket-Adressstruktur sockaddr_un für Unix Domain Sockets Klassen von IPv4-Adressen und Netzmasken Byteanordnung (little-endian und big-endian) Konvertieren, Manipulieren und Extrahieren von IPAdressen Übung 20.3 Elementare TCP-Socket-Funktionen Kreieren eines Sockets mit Funktion socket Zuordnen einer lokalen Protokolladresse mit Funktion bind (Server) Warten auf Verbindungsanforderungen mit listen und accept (Server) Aufbauen einer Verbindung zum Server mit connect (Client) Ermitteln der lokalen bzw. der fremden Protokolladresse Eine einfache iterative TCP-Client/Server-Realisierung Eine einfache parallele TCP-Client/Server-Realisierung Besonderheiten beim Lesen und Schreiben in StreamSockets Verwendung von Standard E/A-Funktionen für Sockets Übung 20.4 Elementare UDP-Socket-Funktionen Überblick Die Funktionen recvfrom und sendto Eine einfache UDP-Client/Server-Realisierung Unzuverlässigkeit bei UDP

20 Verwenden oder Weglassen von bind beim Clientprogramm Benötigte Server-Informationen zu ankommenden IPDatagramm Verwendung von connect bei UDP Simulieren der Unzuverlässigkeit von UDP Übung 20.5 E/A-Multiplexing mit den Funktionen select und poll Verwendung der Funktion select in der Netzwerkprogrammierung Verwendung der Funktion poll in der Netzwerkprogrammierung Übung 20.6 Socket-Optionen Die Funktionen setsockopt und getsockopt Wichtige Socket-Optionen 20.7 Umwandlung von Namen in Adressen und umgekehrt Das Domain-Name-System (DNS) Name-Server Informationen zum Host mit gethostbyname und gethostbyaddr Erfragen von IPv6-Adressen mit gethostbyname IPv6-Unterstützung durch die Funktion gethostbyname uname und gethostname Service-Informationen mit getservbyname und getservbyport Sequentielles Lesen der Service-Informationen Weitere Netzwerkinformationen Die Funktionen getaddrinfo, gai_strerror und freeaddrinfo Die Funktion getnameinfo Übung 20.8 Unix Domain-Protokolle Adressstrukturen der Unix Domain Sockets Client/Server-Realisierung mit Unix Domain Stream-Sockets Client/Server-Realisierung mit Unix Domain Datagramm- Sockets Abstrakte lokale Adressen in Linux Übung 20.9 Die Internet-Superserver inetd/xinetd Eine Dämonisierungsfunktion Daytime-Server als Dämonprozess Der Internet-Superserver inetd Der Internet-Superserver xinetd Übung Weitere Funktionen zum Lesen und Schreiben in Sockets Die Funktionen recv und send Die Funktionen readv und writev Die Funktionen recvmsg und sendmsg

21 Austauschen von Deskriptoren zwischen Prozessen Austauschen von Benutzerberechtigungen zwischen Prozessen unter Linux Übung Socket-Timeouts und nicht blockierende Socket-Operationen Socket-Timeouts Nicht blockierendes Lesen und Schreiben Nicht blockierendes connect Broadcasting mit UDP Broadcast-Adressen Broadcasting an UDP-Daytime-Server Broadcasting-Simulation für neue ebay-gebote Broadcasting von aktuellen Börsendaten aus dem Internet Übung Out-of-Band-Daten Out-of-Band-Daten bei TCP Die Out-of-Band-Marke Übung Eigene Funktionen für die Netzwerkprogrammierung 21 Threads 21.1 Gegenüberstellung von Prozessen und Threads 21.2 Kreieren und Beenden von Threads Kreieren von neuen Threads und deren Thread-IDs Terminieren von Threads Zustände von Threads Übung 21.3 Synchronisation von Threads Synchronisationsprobleme (race conditions) bei Threads Mutexe Bedingungsvariablen Übung 21.4 Typische Anwendungen von Threads Pipelines (Fließband-Verarbeitung) Zerteilen eines Gesamtauftrags in Teilaufträge Client/Server-Anwendungen Übung 21.5 pthread_once Einmalige Ausführung von Initialisierungscode Die Funktion pthread_once Übung 21.6 Thread-Attribute Mutex-Attribute

22 Bedingungsvariablen-Attribute Thread-Attribute 21.7 Abbrechen von Threads Senden und Annehmen von Abbruch-Aufforderungen Unterschiedliche Abbruchmöglichkeiten für einen Thread Exithandler für Threads 21.8 Thread-spezifische Daten Funktionen für Thread-spezifische Daten Übung 21.9 Realzeit-Operationen Prozessor-Zuteilungsstrategien und Prioritäten Konkurrierungslevel von Threads Mutexe mit Prioritäten Notwendige POSIX-Erweiterungen und Anpassungen fork bei Prozessen mit Threads exec bei Prozessen mit Threads exit bei Prozessen mit Threads Ununterbrechbare atomare Ein-/Ausgabeoperationen Thread-sichere und reentrant Funktionen Signale Semaphore bei Threads Weitere Synchronisationsmechanismen Read/Write-Sperren Barrier Spinlocks Anwendungsbeispiele Ein Webclient Abarbeiten einer Auftragsliste durch Server-Threads Prethreaded TCP-Server 22 Terminal-E/A 22.1 Charakteristika eines Terminals im Überblick Terminalmodi Eingabe- und Ausgabepuffer eines Terminals Struktur termios Spezielle Eingabezeichen Terminalflags Das Kommando stty Terminal-E/A-Funktionen und das Modul»Terminal Line Discipline«22.2 Terminalattribute und Terminalidentifizierung tcsetattr und tcgetattr Setzen und Erfragen von Terminalattributen ctermid Erfragen des Kontrollterminalnamens

23 isatty Erfragen, ob ein Filedeskriptor auf Terminal eingestellt ist ttyname Erfragen von Terminalpfadnamen getpass Verdecktes Einlesen eines Passwortes 22.3 Spezielle Eingabezeichen 22.4 Terminalflags 22.5 Baudraten von Terminals cfgetispeed, cfgetospeed, cfsetispeed, cfsetospeed Erfragen und Setzen der Baudrate 22.6 Zeilensteuerung bei Terminals tcdrain, tcflow, tcflush und tcsendbreak Funktionen zur Zeilensteuerung eines Terminals 22.7 Kanonischer und nicht-kanonischer Modus Kanonischer (zeilenorientierter) Modus Nicht-kanonischer Modus Umschalten zwischen cbreak- und raw-terminalmodus 22.8 Terminalfenstergrößen 22.9 termcap, terminfo und curses termcap Eine Datenbank von Terminaleigenschaften terminfo Eine andere Datenbank von Terminaleigenschaften curses/ncurses Eine Bibliothek für Semigraphik unter Unix curses-modus ein- und auschalten Bildschirm löschen, Cursor positionieren und Text ausgeben Attribute für Textausgaben festlegen Einlesen von der Tastatur Funktions- und Positionierungstasten Bildschirminhalte verschieben und Bildausschnitte kopieren S-Lang Eine Alternative zu curses unterlinux S-Lang-Modus ein- und ausschalten Bildschirm löschen, Cursor positionieren und Text ausgeben Vorder- und Hintergrundfarben für Textausgaben Umschalten auf anderen Zeichensatz Einlesen von der Tastatur Die Linux-Konsole Erster Überblick über die Fähigkeiten einer Linux-Konsole Kontrollzeichen Escape-Sequenzen Repräsentation von Steuertasten Direkter Bildschirmzugriff Realisierung der Borland-Semigraphik auf einer Linux- Konsole Die Programmierung von virtuellen Konsolen unter Linux Wichtige Headerdateien, Funktionen und Strukturen

24 Öffnen einer neuen virtuellen Konsole Erfragen von Informationen zu virtuellen Konsolen Einfache Programmierung von virtuellen Konsolen Übung Das Galton-Brett Simulation eines Wettrennens Realisierung von conio.h mit curses Spiel 21 gegen den Computer Autofahren auf einer kurvenreichen Straße Buchstaben-Memory Erraten von AND, NAND, OR, NOR und XOR-Gatter 23 Weitere nützliche Funktionen und Techniken 23.1 Expandierung von Dateinamen Dateinamenexpandierung mit der Funktion popen Dateinamenexpandierung mit der Funktion glob 23.2 String-Vergleiche mit regulären Ausdrücken String-Vergleiche mit den Metazeichen der Dateinamenexpandierung String-Vergleiche mit regulären Ausdrücken 23.3 Abarbeiten von Optionen auf der Kommandozeile Die traditionelle Technik Die getopt-funktionen Das GNU-Softwarepacket popt 24 Wichtige Entwicklungswerkzeuge 24.1 gcc Der GNU-C-Compiler Aufrufsyntax Klassifikation der Dateitypen durch Suffixe Wichtige Optionen 24.2 ld Der Linux/Unix-Linker Aufrufsyntax Einige wichtige Optionen 24.3 gdb Der GNU-Debugger Allgemeines 24.4 strace Mitprotokollieren aller Systemaufrufe Aufrufsyntax Beschreibung Optionen 24.5 Tools zum Auffinden von Speicherüberschreibungen und -lücken efence Electric Fence (Elektrischer Zaun) Weitere Tools zum Auffinden von Speicherüberschreibungen bzw. lücken 24.6 ar Erstellen und Verwalten von statischen Bibliotheken

25 Aufrufsyntax Schlüsselangabe Typische Anwendungen 24.7 Dynamische Bibliotheken Entwerfen von dynamischen Bibliotheken Generieren von dynamischen Bibliotheken Installieren von dynamischen Bibliotheken Beispiel für das Erzeugen, Installieren und Benutzen einer dynamischen Bibliothek Möglichkeiten zur Benutzung von dynamischen Bibliotheken 24.8 make Ein Werkzeug zur automatischen Programmgenerierung Das Makefile Einfache Aufrufformen von make Makros Suffixregeln Spezielle Zielangaben A Headerdatei eighdr.h und Modul fehler.c A.1 Headerdatei eighdr.h A.2 Zentrales Fehlermeldungsmodul fehler.c B Ausgewählte Lösungen zu den Übungen B.1 Ausgewählte Lösungen zu Kapitel 4 (Elementare E/A-Funktionen) B.1.1 Duplizieren und mehrmaliges Öffnen derselben Datei B.1.2 Nachvollziehen einer Notation aus der Bourne- und Korn- Shell B.2 Ausgewählte Lösungen zu Kapitel 5 (Dateien, Directories und ihre Attribute) B.2.1 Makro S_ISLNK für SVR4 B.2.2 Ändern der Zugriffrechte existierender Dateien mit creat oder open B.2.3 unlink und Zeit der letzten i-node-änderung B.2.4 Root-Directory eines Prozesses B.3 Ausgewählte Lösungen zu Kapitel 8 (Nichtlokale Sprünge) B.3.1 Mehrfaches Aufrufen von setjmp B.3.2 Rückkehr zu einer nicht mehr im Stack vorhandenen Funktion B.4 Ausgewählte Lösungen zu Kapitel 9 (DerUnix-Prozess) B.4.1 Ändern des Environment eines Elternprozesses nicht möglich B.4.2 Zugriff auf Adresse 0 des Datensegments meist nicht möglich B.4.3 Gefahren bei der Verwendung von lokalen Variablen B.5 Ausgewählte Lösungen zu Kapitel 10 (DieProzesssteuerung) B.5.1 Kreieren eines Zombies B.5.2 Vorsicht bei Aufruf von vfork in einer anderen Funktion als main B.5.3 Erfragen der eigenen saved Set-User-ID durch einen Prozess B.6 Ausgewählte Lösungen zu Kapitel 11 (Attribute eines Prozesses)

26 B.6.1 Kreieren einer neuen Session durch einen Kindprozess B.6.2 Kontrollterminal für eine verwaiste Prozessgruppe B.7 Ausgewählte Lösungen zu Kapitel 13 (Signale) B.7.1 Implementierung der Funktion raise B.7.2 Nicht-lokaler Sprung unmittelbar nach alarm B.7.3 Umständliche Beendigung bei der abort-implementierung B.7.4 Aufruf einer nicht-reentrant Funktion im Signalhandler B.8 Ausgewählte Lösungen zu Kapitel 14 (STREAMS in System V) B.8.1 Anzahl der verschiedenen Arten von Informationen bei getmsg B.9 Ausgewählte Lösungen zu Kapitel 15 (Fortgeschrittene Ein- und Ausgabe) B.9.1 Gegenüberstellung der Signalmengen- und Deskriptormengenfunktionen B.9.2 Ändern der Limits für Deskriptormengen B.10 Ausgewählte Lösungen zu Kapitel 16 (Dämonprozesse) B.10.1 Schließen der Filedeskriptoren 0, 1 und 2 durch einen Dämonprozess B.11 Ausgewählte Lösungen zu Kapitel 17 (Pipesund FIFOs) B.11.1 Starten eines Koprozesses ohne Signalhandler B.11.2 Lesen und Schreiben in einer Pipe mit Standard-E/A- Funktionen B.11.3 Kein Schließen der Schreibseite einer Pipe B.11.4 Gleichzeitiges Schreiben der Standardausgabe und -fehlerausgabe in Pipe B.12 Ausgewählte Lösungen zu Kapitel 18 (Message-Queues, Semaphore und Shared Memory) B.12.1 Unerlaubtes Lesen von Messages durch fremde Prozesse C Literaturverzeichnis Die Programmiersprache C Allgemein zu Linux/Unix Linux/Unix-Systemprogrammierung Stichwortverzeichnis! A B C D E F G H I J K

27 L M N O P Q R S T U V W X Z Ins Internet: Weitere Infos zum Buch, Downloads, etc. Copyright

28 Copyright Daten, Texte, Design und Grafiken dieses ebooks, sowie die eventuell angebotenen ebook-zusatzdaten sind urheberrechtlich geschützt. Dieses ebook stellen wir lediglich als Einzelplatz-Lizenz zur Verfügung! Jede andere Verwendung dieses ebooks oder zugehöriger Materialien und Informationen, einschliesslich der Reproduktion, der Weitergabe, des Weitervertriebs, der Platzierung im Internet, in Intranets, in Extranets anderen Websites, der Veränderung, des Weiterverkaufs und der Veröffentlichung bedarf der schriftlichen Genehmigung des Verlags. Bei Fragen zu diesem Thema wenden Sie sich bitte an: Zusatzdaten Möglicherweise liegt dem gedruckten Buch eine CD-ROM mit Zusatzdaten bei. Die Zurverfügungstellung dieser Daten auf der Website ist eine freiwillige Leistung des Verlags. Der Rechtsweg ist ausgeschlossen. Hinweis Dieses und andere ebooks können Sie rund um die Uhr und legal auf unserer Website ( herunterladen

Linux/Unix- Systemprogrammierung

Linux/Unix- Systemprogrammierung Helmut Herold Linux/Unix- Systemprogrammierung 3., aktualisierte Auflage An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam

Mehr

LiNUX-UNix-Systemprogrammierung

LiNUX-UNix-Systemprogrammierung Helmut Herold 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. LiNUX-UNix-Systemprogrammierung 2., überarbeitete Auflage

Mehr

3. Grundlagen der Systemprogrammierung

3. Grundlagen der Systemprogrammierung 3.1 Betriebssysteme Zum täglichen Umgang des Systemprogrammierers gehört in erster Linie das Betriebssystem des Rechners, mit dem er arbeitet. Es ist daher selbstverständlich, daß er sich einen guten Einblick

Mehr

Übungen zur Makroökonomie

Übungen zur Makroökonomie Josef Forster Ulrich Klüh Stephan Sauer Übungen zur Makroökonomie 3., aktualisierte Auflage ein Imprint von Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico

Mehr

Ein-/Ausgabe, Dateisystem. Kapitel 9: Ein-/Ausgabe. Programmieren in C für Elektrotechniker. Programmieren in C. Dateisystem. Programmieren in C

Ein-/Ausgabe, Dateisystem. Kapitel 9: Ein-/Ausgabe. Programmieren in C für Elektrotechniker. Programmieren in C. Dateisystem. Programmieren in C für Elektrotechniker Kapitel 9: Dateisystem, Dateisystem E/A-Konzept in UNIX und C UNIX (und damit auch C) verwendet Datenströme (streams) als Konzept zur Verbindung von Programmen mit E/A-Geräten und

Mehr

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

182. stdio. 183. stdio. Eingabe. Ausgabe. Typisch für Zeileneingabe und Analyse: #include <stdio.h> 182. stdio Eingabe int getchar (), getc (FILE * fp), fgetc (FILE * fp); char * gets (char * buf), * fgets (char * buf, int len, FILE * fp); int scanf (const char * fmt,...); int fscanf (FILE * fp, const

Mehr

Grundzüge der Beschaffung, Produktion und Logistik

Grundzüge der Beschaffung, Produktion und Logistik Sebastian Kummer (Hrsg.) Oskar Grün Werner Jammernegg Grundzüge der Beschaffung, Produktion und Logistik Das Übungsbuch ein Imprint von Pearson Education München Boston San Francisco Harlow, England Don

Mehr

Systemprogrammierung.: unter Linux :.

Systemprogrammierung.: unter Linux :. Systemprogrammierung.: unter Linux :. Einführung in Linux 1. Das Filesystem 2. Prozesse 3. Unix Tools 4. Die Shell 1. Das Filesystem 1.1 Dateien 1.2 Ordner 1.3 Links 1.1 Dateien Alles im Filesystem sind

Mehr

Statistik ohne Angst vor Formeln

Statistik ohne Angst vor Formeln Andreas Quatember Statistik ohne Angst vor Formeln Das Studienbuch für Wirtschaftsund Sozialwissenschaftler 3., aktualisierte Auflage ein Imprint von Pearson Education München Boston San Francisco Harlow,

Mehr

Einführung in die Allgemeine Betriebswirtschaftslehre

Einführung in die Allgemeine Betriebswirtschaftslehre Prof. Dr. Thomas Straub Einführung in die Allgemeine Betriebswirtschaftslehre Das Übungsbuch Higher Education München Harlow Amsterdam Madrid Boston San Francisco Don Mills Mexico City Sydney a part of

Mehr

C++ Programmieren mit einfachen Beispielen DIRK LOUIS

C++ Programmieren mit einfachen Beispielen DIRK LOUIS C++ Programmieren mit einfachen Beispielen DIRK LOUIS C++ - PDF Inhaltsverzeichnis C++ Programmieren mit einfachen Beispielen Impressum Inhaltsverzeichnis Liebe Leserin, lieber Leser Schnelleinstieg Was

Mehr

Einführung in die Systemprogrammierung unter Linux

Einführung in die Systemprogrammierung unter Linux Einführung in die Systemprogrammierung unter Linux - 1 - Einführung in die Systemprogrammierung unter Linux Einführung in die Systemprogrammierung unter Linux - 2 - Inhalt 1. Übersicht über benötigte Systemfunktionen...

Mehr

Physische Dateistrukturen

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

Mehr

Linux-Kernel- Programmierung

Linux-Kernel- Programmierung Michael Beck, Harald Böhme, Mirko Dziadzka, Ulrich Kunitz, Robert Magnus, Dirk Verworner, Claus Schröter Linux-Kernel- Programmierung Algorithmen und Strukturen der Version 2.2 5., aktualisierte und erweiterte

Mehr

Statistik mit SPSS Fallbeispiele und Methoden

Statistik mit SPSS Fallbeispiele und Methoden Statistik mit SPSS Fallbeispiele und Methoden 2., aktualisierte Auflage Reinhold Hatzinger Herbert Nagel Higher Education München Harlow Amsterdam Madrid Boston San Francisco Don Mills Mexico City Sydney

Mehr

Programmieren mit Java

Programmieren mit Java Reinhard Schiedermeier Programmieren mit Java 2., aktualisierte Auflage ein Imprint von Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam

Mehr

Psychologie. Das Prüfungstraining zum Zimbardo. Deutsche Bearbeitung von Ralf Graf

Psychologie. Das Prüfungstraining zum Zimbardo. Deutsche Bearbeitung von Ralf Graf Richard J. Gerrig Philip G. Zimbardo Psychologie Das Übungsbuch Das Prüfungstraining zum Zimbardo Deutsche Bearbeitung von Ralf Graf ein Imprint von Pearson Education München Boston San Francisco Harlow,

Mehr

Bankwirtschaft. Das Arbeitsbuch. Ralf Jürgen Ostendorf

Bankwirtschaft. Das Arbeitsbuch. Ralf Jürgen Ostendorf Ralf Jürgen Ostendorf Bankwirtschaft Das Arbeitsbuch Higher Education München Harlow Amsterdam Madrid Boston San Francisco Don Mills Mexico City Sydney a part of Pearson plc worldwide Bankwirtschaft -

Mehr

Grundlagen des Marketing

Grundlagen des Marketing Prof. Dr. Ralf Schellhase Prof. Dr. Birgit Franken Stephan Franken Grundlagen des Marketing Das Übungsbuch Higher Education München Harlow Amsterdam Madrid Boston San Francisco Don Mills Mexico City Sydney

Mehr

C-Kompaktreferenz. Helmut Herold. ADDISON-WESLEY An imprint of Pearson Education

C-Kompaktreferenz. Helmut Herold. ADDISON-WESLEY An imprint of Pearson Education Helmut Herold C-Kompaktreferenz ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam I 1.1 1.2 2.1 2.2 2.3

Mehr

4.4 Prozesse. H. Weber, HS RM SS 2010 Systemprogrammierung Kap. 4.4 Seite 1 von 22

4.4 Prozesse. H. Weber, HS RM SS 2010 Systemprogrammierung Kap. 4.4 Seite 1 von 22 H. Weber, HS RM SS 2010 Systemprogrammierung Kap. 4.4 Seite 1 von 22 getpid Prozeß-Id ermitteln getppid Parent-Prozeß-Id ermitteln fork Duplizieren eines Prozesses exec-familie Prozeß-Überlagerung durch

Mehr

Zusammenfassung für CS-Prüfung 3 Seite 1. CS-Zusammenfassung für Prüfung 3 vom Im Beispiel gibt es 3 Deadlocks

Zusammenfassung für CS-Prüfung 3 Seite 1. CS-Zusammenfassung für Prüfung 3 vom Im Beispiel gibt es 3 Deadlocks Zusammenfassung für CS-Prüfung 3 Seite 1 CS-Zusammenfassung für Prüfung 3 vom 24. 6. 2002 Deadlock Im Beispiel gibt es 3 Deadlocks Unterschied zwischen Blockieren, Verklemmen und Verhungenrn= -> Band 1

Mehr

Makroökonomie. Das Übungsbuch. Josef Forster Ulrich Klüh Stephan Sauer. 4., aktualisierte Auflage

Makroökonomie. Das Übungsbuch. Josef Forster Ulrich Klüh Stephan Sauer. 4., aktualisierte Auflage Makroökonomie Das Übungsbuch 4., aktualisierte Auflage Josef Forster Ulrich Klüh Stephan Sauer ÜB Makroökonomie - PDF Inhaltsverzeichnis Makroökonomie Das Übungsbuch Impressum Inhaltsverzeichnis Vorwort

Mehr

Technische Fotografie Für Naturwissenschaftlicher, Mediziner und Ingenieure

Technische Fotografie Für Naturwissenschaftlicher, Mediziner und Ingenieure Richard Zierl Technische Fotografie Für Naturwissenschaftlicher, Mediziner und Ingenieure ein Imprint von Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico

Mehr

Grundzüge der Finanzmathematik

Grundzüge der Finanzmathematik Markus Wessler Grundzüge der Finanzmathematik Higher Education München Harlow Amsterdam Madrid Boston San Francisco Don Mills Mexico City Sydney a part of Pearson plc worldwide Grundzüge der Finanzmathematik

Mehr

Netzwerkprogrammierung unter Linux und UNIX

Netzwerkprogrammierung unter Linux und UNIX Netzwerkprogrammierung unter Linux und UNIX Bearbeitet von Stefan Fischer, Walter Müller 2. Auflage 1999. Buch. XII, 228 S. Hardcover ISBN 978 3 446 21093 6 Format (B x L): 14 x 20,9 cm Gewicht: 329 g

Mehr

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN UNIX/Linux-Interprozesskommunikation 7. UNIX/Linux Pipes Wintersemester 2016/17 UNIX/Linux-IPC-Mechanismen Nachrichtenbasierter Informationsaustausch: 5. 1.

Mehr

Wissenschaftlich mit PowerPoint arbeiten

Wissenschaftlich mit PowerPoint arbeiten Wissenschaftlich mit PowerPoint arbeiten ein Imprint von Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam Wissenschaftlich mit PowerPoint

Mehr

Programmieren in C. Die C-Standardbibliothek: Datei Ein- und Ausgabe. Prof. Dr. Nikolaus Wulff

Programmieren in C. Die C-Standardbibliothek: Datei Ein- und Ausgabe. Prof. Dr. Nikolaus Wulff Programmieren in C Die C-Standardbibliothek: Datei Ein- und Ausgabe Prof. Dr. Nikolaus Wulff Das Dateisystem In C erfolgt die gesamte Ein- und Ausgabe durch Lesen oder Schreiben von Strömen (stream). Periphere

Mehr

Martin Gräfe. С und Linux. Die Möglichkeiten des Betriebssystems mit eigenen Programmen nutzen HANSER

Martin Gräfe. С und Linux. Die Möglichkeiten des Betriebssystems mit eigenen Programmen nutzen HANSER Martin Gräfe С und Linux Die Möglichkeiten des Betriebssystems mit eigenen Programmen nutzen HANSER Inhaltsverzeichnis Vorwort 9 1 Einführung 11 1.1 Warum gerade C"? 11 1.2 Die Werkzeuge 12 1.2.1 Der Editor

Mehr

http://www.springer.com/3-540-00299-5

http://www.springer.com/3-540-00299-5 http://www.springer.com/3-540-00299-5 Inhaltsverzeichnis 1 Einführung... 1 1.1 TCP/IP-Grundlagen..................................... 2 1.1.1 Netzwerkschicht................................... 3 1.1.2

Mehr

Unix- Netzwerkprogrammierung mitthreads, Sockets und SSL

Unix- Netzwerkprogrammierung mitthreads, Sockets und SSL Markus Zahn Unix- Netzwerkprogrammierung mitthreads, Sockets und SSL Mit 44 Abbildungen und 19 Tabellen Springer 1 Einführung 1 1.1 TCP/IP-Grundlagen 2 1.1.1 Netzwerkschicht 3 1.1.2 Internet-Schicht 4

Mehr

Objektorientierte Softwaretechnik

Objektorientierte Softwaretechnik Bernd Brügge, Allen H. Dutoit Objektorientierte Softwaretechnik mit UML, Entwurfsmustern und Java ein Imprint von Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney

Mehr

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

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

Mehr

Der UNIX-Werkzeugkasten Programmieren mit UNIX

Der UNIX-Werkzeugkasten Programmieren mit UNIX Brian W. Kernighan Rob Pike Der UNIX-Werkzeugkasten Programmieren mit UNIX Die deutsche Ausgabe besorgte Prof. Dr. A.-T Schreiner H INFORMATIK! \J i i11 IC i\. Seih gebietet- \ Standorts _ Carl Hanser

Mehr

Grundzüge der Volkswirtschaftslehre Eine Einführung in die Wissenschaft von Märkten

Grundzüge der Volkswirtschaftslehre Eine Einführung in die Wissenschaft von Märkten Peter Bofinger Eric Mayer Grundzüge der Volkswirtschaftslehre Eine Einführung in die Wissenschaft von Märkten Das Übungsbuch 2., aktualisierte Auflage ein Imprint von Pearson Education München Boston San

Mehr

1 Kommunikation im World-Wide-Web

1 Kommunikation im World-Wide-Web 1 Kommunikation im World-Wide-Web 1.1 Client und Server 1 1.2 Das Internet Protokoll (IP) 4 1.3 Das Transmission Control Protokoll (TCP) 6 1.3-1 Datagramme und Streams 6 1.3.2 Port-Nummern 8 1.4 Das Hypertext

Mehr

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis...

A Kompilieren des Kernels... 247. B Lineare Listen in Linux... 251. C Glossar... 257. Interessante WWW-Adressen... 277. Literaturverzeichnis... 1 Einführung................................................ 1 1.1 Was ist ein Betriebssystem?............................... 1 1.1.1 Betriebssystemkern................................ 2 1.1.2 Systemmodule....................................

Mehr

Mathematik für Ingenieure 2

Mathematik für Ingenieure 2 Armin Hoffmann Bernd Marx Werner Vogt Mathematik für Ingenieure 2 Vektoranalysis, Integraltransformationen, Differenzialgleichungen, Stochastik Theorie und Numerik ein Imprint von Pearson Education München

Mehr

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

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

Mehr

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

Controlling. Das Übungsbuch. Bernd Britzelmaier

Controlling. Das Übungsbuch. Bernd Britzelmaier Controlling Das Übungsbuch Bernd Britzelmaier Controlling - Das Übungsbuch - PDF Inhaltsverzeichnis Controlling Inhaltsverzeichnis Vorwort 7 Kapitel 1 -Controlling und Controller 9 10 1.1 Controlling und

Mehr

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15 Vorwort... 15 1 Einstieg in die Welt von C 17 1.1 Die Sprache C... 17 1.2 Die C-Standardbibliothek... 18 1.3 Die nötigen Werkzeuge für C... 21 1.4 Übersetzen mit der Entwicklungsumgebung... 23 1.5 Übersetzen

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

Kommunikationsmuster (T) Interprozesskommunikation (T) Kommunikation über Pipes (P) Parserspezifikation und -generierung (P)

Kommunikationsmuster (T) Interprozesskommunikation (T) Kommunikation über Pipes (P) Parserspezifikation und -generierung (P) Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom 19.11. Foliensatz 4 Kommunikationsmuster (T) Interprozesskommunikation (T) Kommunikation über Pipes (P) Parserspezifikation und -generierung

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

Matthias W. Stoetzer Erfolgreich recherchieren

Matthias W. Stoetzer Erfolgreich recherchieren Matthias W. Stoetzer Erfolgreich recherchieren Higher Education München Harlow Amsterdam Madrid Boston San Francisco Don Mills Mexico City Sydney a part of Pearson plc worldwide Erfolgreich recherchieren

Mehr

Biostatistik. Eine Einführung für Biowissenschaftler

Biostatistik. Eine Einführung für Biowissenschaftler Matthias Rudolf Wiltrud Kuhlisch Biostatistik Eine Einführung für Biowissenschaftler ein Imprint von Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City

Mehr

Martin Horn Nicolaos Dourdoumas. Regelungstechnik. Rechnerunterstützter Entwurf zeitkontinuierlicher und zeitdiskreter Regelkreise

Martin Horn Nicolaos Dourdoumas. Regelungstechnik. Rechnerunterstützter Entwurf zeitkontinuierlicher und zeitdiskreter Regelkreise Martin Horn Nicolaos Dourdoumas Regelungstechnik Rechnerunterstützter Entwurf zeitkontinuierlicher und zeitdiskreter Regelkreise ein Imprint der Pearson Education München Boston San Francisco Harlow, England

Mehr

Unix/Linux Grundlagen für Einsteiger

Unix/Linux Grundlagen für Einsteiger Unix/Linux Grundlagen für Einsteiger Seminarunterlage Version: 6.08 Version 6.08 vom 25. Juli 2016 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen

Mehr

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

Dateioperationen Fachhochschule Würzburg-Schweinfurt Prof. Dr. Martin Ochs. Abspeichern und Einlesen von Texten (Strings) in Dateien Informatik I SS 2003 Dateioperationen 1 Textdateien, Öffnen Abspeichern und Einlesen von Texten (Strings) in Dateien 1. Das Öffnen einer Datei a) Deklaration eines Zeigers auf eine Datei FILE *pfile; b)

Mehr

Tutorien zur Physik. In Zusammenarbeit mit der Physics Education Group University of Washington

Tutorien zur Physik. In Zusammenarbeit mit der Physics Education Group University of Washington Lillian C. McDermott Peter S. Shaffer Tutorien zur Physik In Zusammenarbeit mit der Physics Education Group University of Washington Für die deutsche Ausgabe bearbeitet von: Christian H. Kautz Daniel Gloss

Mehr

U7 POSIX-Prozesse U7 POSIX-Prozesse

U7 POSIX-Prozesse U7 POSIX-Prozesse U7 POSIX-Prozesse U7 POSIX-Prozesse Prozesse POSIX-Prozess-Systemfunktionen Aufgabe 6 U7.1 U7-1 Prozesse: Überblick U7-1 Prozesse: Überblick Prozesse sind eine Ausführumgebung für Programme haben eine

Mehr

I Dateisysteme. I.1 Allgemeine Konzepte. Einordnung. Prozessor (CPU, Central processing unit) Ein-, Ausgabegeräte/ Periphere Geräte (I/O Devices)

I Dateisysteme. I.1 Allgemeine Konzepte. Einordnung. Prozessor (CPU, Central processing unit) Ein-, Ausgabegeräte/ Periphere Geräte (I/O Devices) I Dateisysteme I Dateisysteme I.1 Allgemeine Konzepte Einordnung Prozessor (CPU, Central processing unit) Hauptspeicher (Memory) Ein-, Ausgabegeräte/ Periphere Geräte (I/O Devices) externe Schnittstellen

Mehr

Klausur Betriebssysteme I

Klausur Betriebssysteme I Prof. Dr. Michael Jäger FB MNI Klausur Betriebssysteme I 18.3.2011 Bitte bearbeiten Sie die Aufgaben auf den Aufgabenblättern. Die Benutzung von Unterlagen oder Hilfsmitteln ist nicht erlaubt. Die Bearbeitungszeit

Mehr

Übungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2014

Übungen zu Systemnahe Programmierung in C (SPiC) Inhalt. Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2014 Übungen zu Systemnahe Programmierung in C (SPiC) Moritz Strübe, Rainer Müller (Lehrstuhl Informatik 4) Sommersemester 2014 Inhalt Prozesse System-Schnittstelle Aufgabe 7 Einlesen von der Standard-Eingabe

Mehr

UML konzentriert. Eine kompakte Einführung in die Standard-Objektmodellierungssprache. Martin Fowler. ADDISON-WESLEY An imprint of Pearson Education

UML konzentriert. Eine kompakte Einführung in die Standard-Objektmodellierungssprache. Martin Fowler. ADDISON-WESLEY An imprint of Pearson Education Martin Fowler UML konzentriert Eine kompakte Einführung in die Standard-Objektmodellierungssprache ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills,

Mehr

Michael Golm, Universität Erlangen-Nürnberg, IMMD 4, 2000/ / Tafelübung 10

Michael Golm, Universität Erlangen-Nürnberg, IMMD 4, 2000/ / Tafelübung 10 10. Tafelübung select (BSD, XPG4) Terminaltreiber konfigurieren (tcgetattr, tcsetattr) Pseudoterminals 113 select Prozesse die mit Pipes und Sockets arbeiten, müssen oft von verschiedenen Filedeskriptoren

Mehr

Systemnahe Programmierung in C Übungen Jürgen Kleinöder, Michael Stilkerich Universität Erlangen-Nürnberg Informatik 4, 2011 U7.fm

Systemnahe Programmierung in C Übungen Jürgen Kleinöder, Michael Stilkerich Universität Erlangen-Nürnberg Informatik 4, 2011 U7.fm U7 POSIX-Prozesse U7 POSIX-Prozesse Prozesse POSIX-Prozess-Systemfunktionen Aufgabe 7 U7.1 U7-1 Prozesse: Überblick U7-1 Prozesse: Überblick Prozesse sind eine Ausführumgebung für Programme haben eine

Mehr

A-2 Dynamische Speicherverwaltung (2) A-2 Dynamische Speicherverwaltung. U1-1 Überblick

A-2 Dynamische Speicherverwaltung (2) A-2 Dynamische Speicherverwaltung. U1-1 Überblick U1 1. Übung U1 1. Übung A-2 Dynamische Speicherverwaltung A-2 Dynamische Speicherverwaltung (2) U1-1 Überblick Ergänzungen zu C Dynamische Speicherverwaltung Portable Programme Aufgabe 1 UNIX-Benutzerumgebung

Mehr

Interprozesskommunikation IPC

Interprozesskommunikation IPC Interprozesskommunikation IPC Seminar Konzepte von Betriebsystem-Komponenten Denis Koslowski koslowski.d@web.de 04.07.2005-1 - Interprozesskommunikation Gliederung 1. Was ist IPC? 2. IPC: Datentransfer

Mehr

Christian H. Kautz Tutorien zur Elektrotechnik

Christian H. Kautz Tutorien zur Elektrotechnik Christian H. Kautz Tutorien zur Elektrotechnik ein Imprint von Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam Tutorien zur Elektrotechnik

Mehr

Spektroskopie. Strukturaufklärung in der Organischen Chemie. Aus dem Amerikanischen von Carsten Biele

Spektroskopie. Strukturaufklärung in der Organischen Chemie. Aus dem Amerikanischen von Carsten Biele Joseph B. Lambert Scott Gronert Herbert F. Shurvell David A. Lightner Spektroskopie Strukturaufklärung in der Organischen Chemie 2., aktualisierte Auflage Aus dem Amerikanischen von Carsten Biele Deutsche

Mehr

Prozesse, Logs und Systemverwaltung

Prozesse, Logs und Systemverwaltung Prozesse, Logs und Systemverwaltung Linux-Kurs der Unix-AG Zinching Dang 31. Januar 2018 Übersicht Wiederholung & Vertiefung: Benutzer & Gruppen Prozesse Log-Dateien Befehle & Optionen Zusammenfassung

Mehr

Access leicht klar sofort. Ignatz Schels

Access leicht klar sofort. Ignatz Schels Access 2010 leicht klar sofort Ignatz Schels Access 2010 - PDF Inhaltsverzeichnis Access 2010 Inhaltsverzeichnis Liebe Leserin, lieber Leser Die Tastatur Navigationstasten Schreibmaschinen-Tastenblock

Mehr

4.3 Directories / Filesysteme

4.3 Directories / Filesysteme I-Node H. Weber, FH Wiesbaden WS 2008/09 Systemprogrammierung Kap. 4.3 Seite 1 von 32 Hierfür gibt es eine ganze Reihe von Systemaufrufen und Subroutines. Wir beginnen mit chroot Root Directory ändern

Mehr

Grundzüge der Beschaffung, Produktion und Logistik

Grundzüge der Beschaffung, Produktion und Logistik Sebastian Kummer (Hrsg.) Oskar Grün Werner Jammernegg Grundzüge der Beschaffung, Produktion und Logistik Das Übungsbuch 2., aktualisierte Auflage Higher Education München Harlow Amsterdam Madrid Boston

Mehr

Langzeitspeicher: File. Kapitel VII. File-Attribute (1) File-Eigenschaften

Langzeitspeicher: File. Kapitel VII. File-Attribute (1) File-Eigenschaften Langzeitspeicher: File Kapitel VII Was ist ein File? Eine Kollektion von Informationen mit einem Namen, die im Sekundärspeicher gespeichert ist. File-Systeme Speichere große Datenmengen. Gespeicherte Information

Mehr

Justin R. Levy. Facebook Marketing. Gestalten Sie Ihre erfolgreichen Kampagnen. An imprint of Pearson

Justin R. Levy. Facebook Marketing. Gestalten Sie Ihre erfolgreichen Kampagnen. An imprint of Pearson Justin R. Levy Facebook Marketing Gestalten Sie Ihre erfolgreichen Kampagnen An imprint of Pearson München Boston San Francisco Harlow, England Don Mills, Ontario Sydney Mexico City Madrid Amsterdam Facebook

Mehr

Unix Grundlagen. - ii - Ambit Professional Seminar Series. Autor: Prof. J. Anton Illik Diplom-Informatiker

Unix Grundlagen. - ii - Ambit Professional Seminar Series. Autor: Prof. J. Anton Illik Diplom-Informatiker Ambit Professional Seminar Series Unix Grundlagen Autor: Prof. J. Anton Illik Diplom-Informatiker unter Mitarbeit von I. Gelrich C. Keefer P. Ott K. Rothemund C. Ruane S. Sahin K-H. Schmidt Ambit Informatik

Mehr

Inhaltsverzeichnis. Carsten Vogt. Nebenläufige Programmierung. Ein Arbeitsbuch mit UNIX/Linux und Java ISBN:

Inhaltsverzeichnis. Carsten Vogt. Nebenläufige Programmierung. Ein Arbeitsbuch mit UNIX/Linux und Java ISBN: Inhaltsverzeichnis Carsten Vogt Nebenläufige Programmierung Ein Arbeitsbuch mit UNIX/Linux und Java ISBN: 978-3-446-42755-6 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42755-6

Mehr

Internationale Unternehmensbewertung

Internationale Unternehmensbewertung Internationale Unternehmensbewertung Prof. Dr. Dr. Dietmar Ernst Thorsten Amann Michael Großmann Dietlinde Flavia Lump Internationale Unternehmensbewertung Ein Praxisleitfaden Higher Education München

Mehr

Google Analytics & Co

Google Analytics & Co Google Analytics & Co Heiko Haller Markus Hartwig Arne Liedtke Methoden der Webanalyse professionell anwenden An imprint of Pearson Education München Boston San Francisco Harlow, England Don Mills, Ontario

Mehr

Programmieren von UNIX-Netzen

Programmieren von UNIX-Netzen W. R. Stevens Programmieren von UNIX-Netzen Grundlagen, Programmierung, Anwendung aus dem Englischen übersetzt von Michael Frese, Werner Maisch, Eberhard Trautwein Eine Coedition der Verlage Carl Hanser

Mehr

Tafelübung zu BSRvS 1 2. Prozesssynchronisation

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

Mehr

C-2 Dynamische Speicherverwaltung (2) C-2 Dynamische Speicherverwaltung. C-1 Überblick

C-2 Dynamische Speicherverwaltung (2) C-2 Dynamische Speicherverwaltung. C-1 Überblick C 1. Übung C 1. Übung C-2 Dynamische Speicherverwaltung C-2 Dynamische Speicherverwaltung (2) C-1 Überblick Ergänzungen zu C Dynamische Speicherverwaltung Portable Programme Aufgabe 1 UNIX-Benutzerumgebung

Mehr

Beispiel Block 2. Oliver Höftberger SS Parallele Prozesse: fork, exec und wait Interprozesskommunikation mit Unnamed Pipes

Beispiel Block 2. Oliver Höftberger SS Parallele Prozesse: fork, exec und wait Interprozesskommunikation mit Unnamed Pipes Beispiel Block 2 Parallele Prozesse: fork, exec und wait Interprozesskommunikation mit Unnamed Pipes Oliver Höftberger SS 2013 Slides by Benedikt Huber 1 fork, exec, exit und wait Prozess erzeugen Programmabbild

Mehr

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

Übungen zu Softwaresysteme I Jürgen Kleinöder Universität Erlangen-Nürnberg Informatik 4, 2004 C-Uebung1.fm C 1. Übung C 1. Übung C-1 Überblick Ergänzungen zu C Dynamische Speicherverwaltung Portable Programme Aufgabe 1 UNIX-Benutzerumgebung und Shell UNIX-Kommandos C.1 C-2 Dynamische Speicherverwaltung C-2

Mehr

Inhaltsverzeichnis. Vorwort 1. 1 EINLEITUNG Übersicht zum Buch 5

Inhaltsverzeichnis. Vorwort 1. 1 EINLEITUNG Übersicht zum Buch 5 Vorwort 1 1 EINLEITUNG 3 1.1 Übersicht zum Buch 5 2 DAS UNIX-SYSTEM 7 2.1 Die UNIX-Entwicklung 7 2.2 Die UNIX-Werkzeuge 9 2.3 Die wichtigsten UNIX-Einflüsse 11 3 ERSTE SCHRITTE IN UNIX 21 3.1 UNIX-Oberflächen

Mehr

8. Arbeiten mit Dateien

8. Arbeiten mit Dateien 8. Arbeiten mit Dateien www.c-programme.de Stefan Thiemert Kapitel 8 - Seite 1 von 6 8. 1. Allgemeines Bisher haben wir Daten, die wir in unseren Programmen erzeugt und verarbeitet haben, nur über den

Mehr

C für Java-Programmierer

C für Java-Programmierer Carsten Vogt C für Java-Programmierer ISBN-10: 3-446-40797-9 ISBN-13: 978-3-446-40797-8 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-40797-8 sowie im

Mehr

U3 UNIX-Signale U3 UNIX-Signale

U3 UNIX-Signale U3 UNIX-Signale U3 UNIX-Signale U3 UNIX-Signale Besprechung der Aufgabe 2: sister Nebenläufigkeit durch Signale Aktives Warten auf Ereignisse Probleme beim passiven Warten (auf Signale) Nachtrag zur Signalbehandlungsschnittstelle

Mehr

Themenübersicht Verwendung im Studium Voraussetzungen Ziele Website zum Buch Danksagungen... 21

Themenübersicht Verwendung im Studium Voraussetzungen Ziele Website zum Buch Danksagungen... 21 Vorwort 15 Themenübersicht... 15 Verwendung im Studium... 17 Voraussetzungen... 18 Ziele.... 19 Website zum Buch... 20 Danksagungen... 21 Vorwort zur deutschen Ausgabe 22 Übersetzung... 22 Verwendung in

Mehr

Dr. Monika Meiler. Inhalt

Dr. Monika Meiler. Inhalt Inhalt 15 Dateiverwaltung, Ein- und Ausgabe...15-2 15.1 Grundlagen...15-3 15.2 Arbeit mit Dateien...15-5 15.2.1 Der Datentyp FILE... 15-5 15.2.2 Öffnen und Schießen von Dateien... 15-6 15.2.3 Verwaltung

Mehr

Kapitel V Kapitel VII II File File--Systeme Systeme VO Betriebssysteme 1

Kapitel V Kapitel VII II File File--Systeme Systeme VO Betriebssysteme 1 Kapitel VII File-Systeme VO Betriebssysteme 1 Langzeitspeicher: File Was ist ein File? Eine Kollektion von Informationen mit einem Namen, die im Sekundärspeicher gespeichert ist. speichere große Datenmengen

Mehr

Input, Output, Dateien

Input, Output, Dateien Input, Output, Dateien C-Kurs 2013, 1. Tutorium Armelle Vérité http://wiki.freitagsrunde.org 8. September 2013 This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 License. 1 / 21

Mehr

Übungsbuch Elektrotechnik

Übungsbuch Elektrotechnik Übungsbuch Elektrotechnik Elektrotechnik Aufgabensammlung Übungsbuch Manfred Albach Janina Fischer Higher Education München Harlow Amsterdam Madrid Boston San Francisco Don Mills Mexico City Sydney a

Mehr

SYSPROG BEISPIEL 3. 2. Ist die Anzahl gleich Eins, dann geben Sie das sortierte Ergebnis aus. Es ist einfach der Datensatz.

SYSPROG BEISPIEL 3. 2. Ist die Anzahl gleich Eins, dann geben Sie das sortierte Ergebnis aus. Es ist einfach der Datensatz. SYSPROG BEISPIEL 3 Forksort 0.1 Aufgabenstellung Schreiben Sie ein Programm das Eingaben sortiert. SYNOPSIS forksort 0.2 Anleitung Das Programm soll die Daten von stdin lesen. Die erste Zeile muss eine

Mehr

Grundlagen, Praxis, Handlungsfelder

Grundlagen, Praxis, Handlungsfelder Prof. Dr. Bernd Britzelmaier Controlling Grundlagen, Praxis, Handlungsfelder Higher Education München Harlow Amsterdam Madrid Boston San Francisco Don Mills Mexico City Sydney a part of Pearson plc worldwide

Mehr

4 Zugriffsschutz. soll unerwünschte Zugriffe von Subjekten auf Objekte verhindern. (access protection, access control) Beispiele:

4 Zugriffsschutz. soll unerwünschte Zugriffe von Subjekten auf Objekte verhindern. (access protection, access control) Beispiele: 4 Zugriffsschutz (access protection, access control) soll unerwünschte Zugriffe von Subjekten auf Objekte verhindern Beispiele: Prozessor überschreibt Speicherzelle: CLEAR 0 Benutzer erweitert Paßwortdatei:

Mehr

Vorlesung Betriebssysteme II

Vorlesung Betriebssysteme II 1 / 15 Vorlesung Betriebssysteme II Thema 3: IPC Robert Baumgartl 20. April 2015 2 / 15 Message Passing (Nachrichtenaustausch) Prinzip 2 grundlegende Operationen: send(), receive() notwendig, wenn kein

Mehr