Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

lstat, lstat64, lstatx, lstat64x - Dateistatus abfragen

&pagelevel(4)&pagelevel

Definition

#include <sys/stat.h>
#include <sys/types.h>

int lstat(const char *path, struct stat *buf);
int lstat64(const char *path, struct stat64 *buf);

CRTE111A30

int lstatx(const char *path, struct statx *buf);
int lstat64x(const char *path, struct stat64x *buf); (Ende)

Beschreibung

lstat() liefert genau wie stat() Dateiattribute. Nur wenn path auf einen symbolischen Verweis zeigt, gibt lstat() Informationen über den Verweis aus, während stat() Informationen über die Datei ausgibt, auf die sich der Verweis bezieht.

buf ist ein Zeiger auf eine stat-Struktur, in die die Informationen über die angegebene Datei geschrieben werden.

Es besteht kein funktionaler Unterschied zwischen lstat() und lstat64(), außer dass bei lstat64() der File Status in einer stat64-Struktur zurückgegeben wird.

Die Funktionen mit dem Suffix x verhalten sich, wie die gleichnamigen Funktionen ohne Suffix, außer dass sie den File Status in einer entsprechenden stat-Struktur mit Suffix x  zurückgeben und daher auch über den 19.1.2038 03:14:07 Uhr UTC hinaus korrekt funktionieren.

Die Struktur stat enthält die folgenden Elemente:

mode_t    st_mode;    /* Dateimodus (siehe mknod()) */
ino_t     st_ino;     /* Dateikennziffer (i-Node) */
dev_t     st_dev;     /* Gerätekennung, die einen Verzeichniseintrag für
                         diese Datei enthält */
dev_t     st_rdev;    /* Gerätekennung, nur für zeichen- oder
                         blockorientierte Gerätedateien definiert */
nlink_t   st_nlink;   /* Anzahl der Verweise */
uid_t     st_uid;     /* Benutzerkennung des Dateibesitzers */
gid_t     st_gid;     /* Gruppenkennung des Dateibesitzers */
off_t     st_size;    /* Dateigröße in Bytes */
time_t    st_atime;   /* Zeit des letzten Zugriffs */
time_t    st_mtime;   /* Zeit der letzten Datenänderung */
time_t    st_ctime;   /* Zeit der letzten Änderung des Dateistatus
                         Die Zeit wird in Sekunden gemessen ab dem
                         1. Januar 1970, 00:00:00 Uhr */
long      st_blksize; /* Bevorzugte E/A-Blockgröße */
blkcnt_t  st_blocks;  /* Anzahl zugewiesener st_blksize-Blöcke */

Die Elemente der Struktur stat64 sind wie die von stat definiert, mit Ausnahme folgender Komponenten:

ino64_t    st_ino
off64_t    st_size
blkcnt64_t st_blocks

Die Elemente der Strukturen statx bzw. stat64x sind wie die von stat bzw. stat64 definiert, mit Ausnahme folgender Komponenten:

time64_t    st_atime;
time64_t    st_mtime;
time64_t    st_ctime; 

Zusätzlich zu den in mknod() beschriebenen Modi kann st_mode auch S_IFLNK sein, wenn die Datei ein symbolischer Verweis ist.

Die Komponente st_size enthält die Länge des Pfadnamens, der in dem symbolischen Verweis steht. Abschließende Nullen werden nicht mitgezählt. Der Inhalt aller übrigen Komponenten der Struktur stat ist undefiniert.

Returnwert

0

bei Erfolg.


-1

bei Fehler. errno wird gesetzt, um den Fehler anzuzeigen.

Fehler

lstat(), lstat64(), lstatx() und lstat64x() schlagen fehl, wenn gilt: 

 

EACCES

Eine Komponente des Pfades darf nicht durchsucht werden.

 

EIO

Es trat während des Lesens oder Schreibens vom Dateisystem ein Ein- oder Ausgabefehler auf.

 

ELOOP

Bei der Übersetzung von path wurden zuviele symbolische Verweise angetroffen.

 

ENAMETOOLONG 



Die Länge des Pfadnamens überschreitet {PATH_MAX}, oder die Länge einer Komponente des Pfadnamens überschreitet {NAME_MAX}.

 

ENOTDIR

Eine Komponente des Pfadnamen-Präfix ist kein Dateiverzeichnis.

 

ENOENT

Eine Komponente des Pfadnamens existiert nicht, oder path zeigt auf eine leere Zeichenkette.

 

EOVERFLOW

Eine Komponente ist zu groß, um in der Struktur, auf die buf zeigt, gespeichert zu werden.

 

BS2000


 

EINVAL

Es wurde versucht, auf eine BS2000-Datei zuzugreifen.

 

ENAMETOOLONG 



Die Auflösung symbolischer Verweise im Pfadnamen führt zu einem Zwischenergebnis, dessen Länge {PATH_MAX} überschreitet.

 

EFAULT

buf oder path weisen auf eine ungültige Adresse.

 

EINTR

Ein Signal wurde während des Systemaufrufs lstat() oder lstat64() abgefangen. (Ende)


lstat() und lstat64() schlagen fehl, wenn gilt:

Erweiterung

 

EOVERFLOW

Ein Zeitstempel ist zu groß für eine time-t Komponente (dies wird nach dem 19.1.2038 03:14:07 Uhr UTC der Fall sein)(Ende)


lstatx() und lstat64x() schlagen fehl, wenn gilt:

 

EINVAL

POSIX-BC Korrekturstand < A47.

Siehe auch

chmod(), chown(), creat(), fstat(), link(), stat(), mknod(), stat(), unlink(), write(), fcntl.h, sys/stat.h, sys/types.h.