Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger

 << zurück
Linux-UNIX-Programmierung von Jürgen Wolf
Das umfassende Handbuch – 2., aktualisierte und erweiterte Auflage 2006
Buch: Linux-UNIX-Programmierung

Linux-UNIX-Programmierung
1216 S., mit CD, 49,90 Euro
Rheinwerk Computing
ISBN 3-89842-749-8
gp Kapitel A Funktionsreferenz
  gp B.1 ANSI C
  gp B.2 ANSI C99
  gp B.3 Elementare E/A-Funktionen
  gp B.4 Fortgeschrittene Ein-/Ausgabe-Funktionen
  gp B.5 Verzeichnisse
  gp B.6 Attribute von Dateien und Verzeichnissen
  gp B.7 Links
  gp B.8 Prozess und Prozessverwaltungsfunktionen
  gp B.9 Signale – Das neue Signalkonzept
  gp B.10 Interprozesskommunikationen
  gp B.11 Sys-V-Interprozesskommnunikationen
  gp B.12 Threadprogrammierung
  gp B.13 Netzwerkprogrammierung
  gp B.14 MySQL C-API
  gp B.15 PostgreSQL C-API
  gp B.16 Weitere Funktionsreferenzen auf der Buch-CD


Rheinwerk Computing

B.3 Elementare E/A-Funktionen  downtop

Die hier vorgestellten Funktionen sind alle zum größten Teil schon im Buch behandelt worden, weshalb hierzu nur die jeweilige Syntax und deren Bedeutung aufgelistet wird. Alle elementare Funktionen sind ungepuffert in der Ein-/Ausgabe und entsprechen dem POSIX- und XPG4-Standard (nicht aber dem von ANSI C).


Rheinwerk Computing

B.3.1 Limits-Konstanten  downtop

In der Headerdatei <limits.h> finden sich häufig noch weitere symbolische Konstanten, welche allerdings nicht vom ANSI C Standard vorgeschrieben – aber von POSIX benötigt werden. Die im Buch angegebenen Mindestwerte liegen gewöhnlich weit unter den Angaben im echten Leben. Die in der Tabelle aufgelisteten Konstanten stellen nur einen Überblick zu den gängigsten Konstanten da.


Tabelle B.26    POSIX-Konstanten in limits.h

Konstante Mindestwert Bedeutung
MAX_INPUT 255 max. Speicherplatz in der Warteschlange der Terminal-Eingabe
NGROUPS_MAX 0 max. Zusatz-Group-ID eines Prozesses
PASS_MAX 8 max. signifikante Anzahl von Bytes für die Passwort-Eingabe (ohne dem Terminierungszeichen)
PID_MAX INT_MAX Maximalwert für eine Prozess-ID (PID)
UID_MAX ULONG_MAX Maximalwert für Benutzer- oder Gruppen-ID (UID, GID)
ARG_MAX 4096 Maximale Länge (in den Bytes) der Argumente für die exec- Funktion
CHILD_MAX 6 Maximale Anzahl von Kindprozessen pro realer Benutzernummer (reale User-ID).
MAX_CANON   max. Speicherplatz (in Bytes) in der Warteschlange der kanonischen Terminal-Eingabe
OPEN_MAX 16 Maximale Anzahl von Dateien, die pro Prozess geöffnet werden können.
NAME_MAX Unbestimmt Maximale Bytezahl für Dateinamen
PATH_MAX 255 Maximale Bytezahl für Pfadnamen
LINK_MAX 8 Maximale Anzahl von Links auf eine Datei
PIPE_BUF 512 Maximale Bytezahl die in eine Pipe geschrieben werden können

Weiterhin ist es manchmal nötig, etwas bei der Übersetzung abzufragen, ob etwas definiert ist oder nicht, um anschließend den Übersetzungslauf der Anwendung entsprechend anzupassen. Hierzu sind in der Headerdatei <unistd. h.> einige Konstanten definiert. Wenn eine dieser Konstanten vorhanden ist, bedeutet, dies, dass eine entsprechende Aktion (siehe in der Tabelle die Bedeutung) zutrifft.


Tabelle B.27    Konstanten der Headerdatei unistd. h.

Konstante Bedeutung, wenn definiert
_POSIX_SAVED_IDS saved Set-User- und Set-Group-ID wird unterstützt
_POSIX_NO_TRUNC ist der Pfadnamen länger als PATH_MAX führt dies zu einem Fehler
_POSIX_CHOWN_RESTRICTED chown ist nicht für alle Benutzer erlaubt
_POSIX_JOB_CONTROL Jobkontrolle wird unterstützt
_POSIX_VERSION Versionsnummer von POSIX.1
_POSIX_SOURCE hiermit wird dem Compiler mitgeteilt, dass das Programm absolut POSIX-konform sein soll.
_XOPEN_VERSION Versionsnummer von XPG


Rheinwerk Computing

B.3.2 Elementare E/A-Funktionen  toptop

Gewöhnlich benötigen Sie zur Verwendung der gleich aufgelisteten Funktionen folgende Headerdateien:

/* Für die Funktionen */
#include <unistd. h.>
/* Für symbolische Konstanten */
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

Tabelle B.28    Elementare E/A-Funktionen mit Filedeskriptoren

Syntax Bedeutung
int open( const char *pfadname, int oflag, ... /* mode_t modus */ ); Datei öffnen
int close(int fd); Datei schließen
ssize_t read( int fd, void *puffer, size_t bytes ); Aus Datei lesen
ssize_t write( int fd, void *puffer, size_t bytes ); In Datei schreiben
off_t lseek( int fd, off_t offset, int wie ); Schreib-/Lesezeiger positionieren
int dup(int fd); int dup2(int fd1, int fd2); Filedeskriptoren duplizieren
int fcntl( int fd, int kommando, ... /* int arg */ ); Verändern, abfragen oder Sperren eines offenen Filedeskriptors
int fileno( FILE *fz ); Aus FILE-Zeiger den Filedeskriptor ermitteln
FILE *fdopen(int fd, const char *modus); Aus Filedeskriptor einen FILE-Zeiger erzeugen

 << zurück
  
  Zum Rheinwerk-Shop
Neuauflage: Linux-UNIX-Programmierung
Neuauflage:
Linux-UNIX-
Programmierung

bestellen
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: Linux-Server






 Linux-Server


Zum Rheinwerk-Shop: Das Komplettpaket LPIC-1 & LPIC-2






 Das Komplettpaket
 LPIC-1 & LPIC-2


Zum Rheinwerk-Shop: Linux-Hochverfügbarkeit






 Linux-
 Hochverfügbarkeit


Zum Rheinwerk-Shop: Shell-Programmierung






 Shell-
 Programmierung


Zum Rheinwerk-Shop: Linux Handbuch






 Linux Handbuch


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
Info





Copyright © Rheinwerk Verlag GmbH 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern