Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

pathconf, fpathconf - Wert einer Pfadnamen-Variablen ermitteln

&pagelevel(4)&pagelevel

Definition

#include <unistd.h>

long int pathconf(const char *path, int name);
long int fpathconf(int fildes, int name);

Beschreibung

Mit pathconf() und fpathconf() kann der aktuelle Wert einer konfigurierbaren Systemvariablen name ermittelt werden, die einer Datei oder einem Dateiverzeichnis zugeordnet ist.

Für pathconf() zeigt path auf den Pfadnamen einer Datei oder eines Dateiverzeichnisses.

Für fpathconf() ist fildes der Deskriptor einer offenen Datei.

Das C-Laufzeitsystem unterstützt die Variablen, die in der folgenden Tabelle aufgeführt sind. Andere X/Open-kompatible Implementierungen können weitere Variablen unterstützen. Die folgende Tabelle enthält die Systemvariablen aus den Dateien limits.h oder unistd.h, die mit pathconf() oder fpathconf() abgefragt werden können; die symbolischen Konstanten sind in unistd.h definiert. Sie enthalten die entsprechenden Werte für das Argument name:

Systemvariable name

Wert von name (Konstante)

Bemerkungen

{LINK_MAX}

_PC_LINK_MAX

1.

{MAX_CANON}

_PC_MAX_CANON

2.

{MAX_INPUT}

_PC_MAX_INPUT

2.

{NAME_MAX}

_PC_NAME_MAX

3., 4.

{PATH_MAX}

_PC_PATH_MAX

4., 5.

{PIPE_BUF}

_PC_PIPE_BUF

6.

_POSIX_CHOWN_RESTRICTED

_PC_CHOWN_RESTRICTED

7.

_POSIX_NO_TRUNC

_PC_NO_TRUNC

3., 4.

_POSIX_VDISABLE

_PC_VDISABLE

2.

  1. Wenn path oder fildes auf ein Dateiverzeichnis verweisen, bezieht sich der Returnwert auf das Dateiverzeichnis selbst.
  2. Wenn path oder fildes nicht auf eine Gerätedatei für ein Terminal verweisen, werden die Variablen {MAX_CANON}, {MAX_INPUT} und _POSIX_VDISABLE ignoriert.

  3. Wenn path oder fildes auf ein Dateiverzeichnis verweisen, bezieht sich der Returnwert auf Dateinamen im Dateiverzeichnis.

  4. Wenn path oder fildes nicht auf ein Dateiverzeichnis verweisen, wird keine Verbindung der Variablen {NAME_MAX}, {PATH_MAX} und _POSIX_VDISABLE mit der spezifizierten Datei unterstützt.

  5. Wenn path oder fildes auf ein Dateiverzeichnis verweisen, ist der Returnwert die maximale Länge eines relativen Pfadnamens, wenn das angegebene Dateiverzeichnis das aktuelle Dateiverzeichnis ist.

  6. Wenn path auf eine FIFO oder fildes auf eine Pipe oder FIFO verweist, bezieht sich der Returnwert auf das referenzierte Objekt. Wenn path oder fildes auf ein Dateiverzeichnis verweisen, bezieht sich der Returnwert auf eine existierende oder innerhalb des Dateiverzeichnisses erzeugte FIFO. Wenn path oder fildes auf einen anderen Dateityp verweisen, ist das Verhalten undefiniert.

  7. Wenn path oder fildes auf ein Dateiverzeichnis verweisen, bezieht sich der Returnwert auf irgendwelche, in diesem Standard definierte Dateien, die keine Dateiverzeichnisse sind und innerhalb des Dateiverzeichnisses existieren oder erzeugt werden können.

Returnwert

aktueller Wert von name



bei Erfolg.
Der Returnwert ist nicht niedriger als der entsprechende Wert in der Anwendung, wenn diese mit limits.h oder unistd.h der jeweiligen Implementierung übersetzt wird.


-1

wenn die Variable zu name keine Grenze für path oder den Dateideskriptor hat. errno wird nicht gesetzt.

 

-1

wenn name einen ungültigen Wert hat, oder wenn die Implementierung path oder fildes benutzen muss, um den Wert von name zu bestimmen und die Implementierung die Zuordnung von name zu der durch path oder fildes angegebenen Datei nicht unterstützt, oder wenn der Prozess nicht die entsprechenden Rechte besitzt, um die durch path oder fildes angegebene Datei zu überprüfen, oder wenn path nicht existiert, oder wenn fildes kein gültiger Dateideskriptor ist.

In diesen Fällen wird errno gesetzt, um den Fehler anzuzeigen.

Fehler

pathconf() schlägt fehl, wenn gilt:

Erweiterung

 

EACCES

Für eine Komponente des Pfadnamens besteht kein Suchrecht. (Ende)

 

EINVAL

Der Wert von name ist ungültig,
oder es wird versucht, auf eine BS2000-Datei zuzugreifen.


Erweiterung

 

ELOOP

Es gibt zu viele symbolische Verweise beim Übersetzen von path.

 

ENAMETOOLONG

 

Die Länge der Zeichenkette path überschreitet den Wert {PATH_MAX},
oder eine Komponente des Pfadnamens ist länger als {NAME_MAX}, während _POSIX_NO_TRUNC aktiv ist.

 

ENOENT

Die angegebene Datei existiert nicht,
oder path zeigt auf eine leere Zeichenkette. (Ende)

 

ENOTDIR

Eine Komponente des Pfadnamen-Anfangs ist kein Dateiverzeichnis.

 

fpathconf() schlägt fehl, wenn gilt:

 

EINVAL

Der Wert von name ist ungültig,
oder die Implementierung unterstützt die Zuordnung von name zur angegebenen Datei nicht.

 

EBADF

fildes ist kein gültiger Dateideskriptor.

Siehe auch

sysconf(), limits.h, unistd.h.