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.6 Attribute von Dateien und Verzeichnissen  downtop

Die einzelnen Attribute zu einer Datei oder einem Verzeichnis können Sie aus der Struktur stat herauslesen. Die Struktur stat ist in der Headerdatei <sys/stat.h> definiert und besitzt gewöhnlich (wird nicht fest vorgeschrieben) die in der Tabelle aufgelisteten Strukturvariablen.


Tabelle B.33    Strukturvariablen in struct stat und deren Bedeutung

Variable Bedeutung POSIX
st_dev Gerätenummer (Device-Nummer) des Dateisystems auf dem sich die Datei / das Verzeichnis befindet ja
st_ino Inode-Nummer ja
st_mode Dateimodus (Dateityp und Zugriffsrechte) ja
st_nlink Anzahl fester Links auf die Datei ja
st_uid UID des Dateieigentümers (ist logisch das UID/GID numerisch sind, sonst wären es ja nicht die UIDs) ja
st_gid Numerische GID des Dateieigentümers ja
st_rdev Geräte-ID (nur für Spezialdateien) nein
st_size Größe der Datei in Bytes ja
st_atime Datum des letzten Zugriffs ja
st_mtime Datum der letzten Veränderung ja
st_ctime Datum der Inode-Änderung ja
st_blksize Eingestellte Blockgröße nein
st_blocks Anzahl der verwendeten st_blksize-Blöcke nein


Rheinwerk Computing

B.6.1 Funktionen zum Erfragen der Dateiattribute  downtop


Tabelle B.34    Verschiedene Versionen zum Erfragen der Dateiattribute

Syntax Bedeutung
int stat( const char *pfadname, struct stat *buf ); Erfragen der Dateiattribute zu pfadname
int fstat( int fd, struct stat *buf ); Erfragen der Dateiattribute zum Filedeskriptor fd
int lstat( const char *pfadname, struct stat *buf ); Erfragen der Dateiattribute zu pfadname – ist pfadname ein symbolicher Link, wird dieser verfolgt

Dateiarten – st_mode


Tabelle B.35    Makros in <sys/stat.h> für die Dateiart st_mode

Makro Bedeutung
S_ISREG() Reguläre Datei
S_ISDIR() Verzeichnis
S_ISCHR() Zeichenorientierte Gerätedatei
S_ISBLK() Blockorientierte Gerätedatei
S_ISFIFO() Pipe
S_ISLINK() Symbolischer Link (nicht bei POSIX.1 oder SVR4)
S_ISSOCK() Socket (nicht bei POSIX.1 oder SVR4)

Zugriffsrechte – st_mode


Tabelle B.36    Zugriffsrechte der drei Benutzerklassen in <sys/stat.h>

Konstante Bedeutung Benutzerklasse
S_IRUSR read (Leserecht) Dateieigentümer
S_IWUSR write (Schreibrecht) Dateieigentümer
S_IXUSR execute (Ausführrecht) Dateieigentümer
S_IRGRP read (Leserecht) Gruppe des Dateieigentümers
S_IWGRP write (Schreibrecht) Gruppe des Dateieigentümers
S_IXGRP execute (Ausführrecht) Gruppe des Dateieigentümers
S_IROTH read (Leserecht) Alle anderen Benutzer
S_IWOTH write (Schreibrecht) Alle anderen Benutzer
S_IXOTH execute (Ausführrecht) Alle anderen Benutzer

Größe einer Datei – st_size, st_blocks, st_blksize

Wenn Sie die Größe einer Datei mit st_size abfragen, hängt dies von der Art der Datei (st_mode) ab.


Tabelle B.37    Größe von Dateien

Dateiart Größe in st_size
Verzeichnis Abhängig vom Filesystem
Reguläre Datei Bytezahl der entsprechenden Datei
symbolischer Link Länge in Bytes des Dateinamens vom symbolischen Link (mit \0)
Pipes Anzahl der Bytes, die zum Lesen zur Verfügung stehen

In SVR4 und BSD gibt es in der Struktur stat auch noch die Variablen st_blksize und st_blocks, mit denen die voreingestellte Blockgröße der Ein-/Ausgabe und die Anzahl der Blöcke, die eine Datei belegt, angegeben werden.


Rheinwerk Computing

B.6.2 Funktionen zum Erfragen oder Setzen bestimmter Zugriffsrechte  toptop


Tabelle B.38    Erfragen und Setzen von Zugriffsrechten

Funktion Bedeutung
int chmod( const char *pfad, mode_t modus) ; int fchmod( int fd, mode_t modus) ; Zugriffsrechte für eine Datei ändern
int access( const char *pfad, mode_t modus) ; Zugriffsrechte für reale User/Group-ID zu einer Datei erfragen
int chown( const char *path, uid_t owner, gid_t group); int fchown( int fd, uid_t owner, gid_t group); Ändern der User- und Group-ID einer Datei
int lchown( const char *path, uid_t owner, gid_t group );  
mode_t umask( mode_t mask) ; Abfragen und Setzen einer Dateikreierungsmaske

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