fpathconf, pathconf - Obtenir des valeurs de configuration de fichiers
Bibliothèque C standard (
libc,
-lc)
#include <unistd.h>
long fpathconf(int fd, int nom_option);
long pathconf(const char *chemin, int nom_option);
La fonction
fpathconf() récupère la valeur de l'option de
configuration
nom_option pour le descripteur de fichier ouvert
fd.
La fonction
pathconf() récupère la valeur de l'option de
configuration
nom_option pour le fichier
chemin.
Les macros correspondantes définies dans
<unistd.h> donnent
des informations minimales ; si une application désire tirer
partie des valeurs qui peuvent évoluer, elle peut faire appel à
fpathconf() ou
pathconf() pour obtenir des résultats plus
détaillés.
Définir
nom_option à l'une des constantes suivantes renvoie
les options de configuration suivantes :
- _PC_LINK_MAX
- Le nombre maximal de liens sur le fichier. Si fd ou
chemin correspondent à un répertoire, la valeur
s'applique à l'ensemble du répertoire. La macro
correspondante est _POSIX_LINK_MAX.
- _PC_MAX_CANON
- La longueur maximale des lignes de saisie
formatées ; fd ou chemin doivent correspondre
à un terminal. La macro correspondante est
_POSIX_MAX_CANON.
- _PC_MAX_INPUT
- La longueur maximale d'une ligne de saisie ;
fd ou chemin doivent correspondre à un terminal. La
macro correspondante est _POSIX_MAX_INPUT.
- _PC_NAME_MAX
- La longueur maximale du nom d'un fichier que le processus a
le droit de créer dans les répertoires chemin ou
fd. La macro correspondante est _POSIX_NAME_MAX.
- _PC_PATH_MAX
- La longueur maximale des chemins relatifs lorsque
chemin ou fd est le répertoire courant. La macro
correspondante est _POSIX_PATH_MAX.
- _PC_PIPE_BUF
- Le nombre maximal d'octets qui peuvent être
écrits en une seule fois dans un tube ou une file FIFO. Pour
fpathconf(), fd doit faire référence à
un tube ou à une file FIFO. Pour pathconf(), chemin
doit faire référence à une file FIFO ou à un
répertoire ; dans ce dernier cas, la valeur renvoyée
correspondra aux files FIFO créées dans ce
répertoire. La macro correspondante est
_POSIX_PIPE_BUF.
- _PC_CHOWN_RESTRICTED
- La valeur renvoyée est positive si l'utilisation de
chown(2) et fchown(2) pour changer l'UID d'un fichier est
restreinte à un processus possédant des privilèges
appropriés, et si leur utilisation pour changer le GID d'un fichier
à une valeur autre que celle du GID effectif du processus ou de ses
GID supplémentaires est restreinte à un processus
possédant les privilèges appropriés. En accord avec
POSIX.1, cette variable sera toujours définie avec une valeur
différente de -1. La macro correspondante est
_POSIX_CHOWN_RESTRICTED.
- Si fd ou chemin fait référence
à un répertoire, la valeur renvoyée est valable pour
tous les fichiers du répertoire considéré.
- _PC_NO_TRUNC
- Renvoie une valeur non nulle si l'accès à des
noms de fichier plus long que _POSIX_NAME_MAX génère
une erreur. La macro correspondante est _POSIX_NO_TRUNC.
- _PC_VDISABLE
- Renvoie une valeur non nulle si la gestion des
caractères spéciaux peut être
désactivée, auquel cas fd ou path doit
correspondre à un terminal.
Ces fonctions peuvent renvoyer une des valeurs suivantes :
- •
- En cas d'erreur, la valeur renvoyée est -1 et
errno est définie pour préciser l'erreur (par
exemple, EINVAL pour signaler que nom_option est non
valable).
- •
- Si nom_option correspond à une limite
supérieure ou inférieure et si cette limite est
indéterminée, la valeur renvoyée est
-1 et errno n'est pas modifiée (pour faire la
distinction entre une limite indéterminée et une erreur,
définir errno à zéro avant l'appel, puis
vérifier si la valeur de errno est différente de
zéro lorsque la valeur renvoyée est -1).
- •
- Si nom_option est un nom d'option valable, une
valeur positive est renvoyée si l'option correspondante est prise
en charge, ou -1 dans le cas contraire.
- •
- Sinon, la valeur actuelle de l'option ou de la limite est
renvoyée. Cette valeur ne sera pas plus restrictive que la valeur
correspondante indiquée à l'application dans
<unistd.h> ou <limits.h> à la compilation
de cette application.
- EACCES
-
pathconf() : la permission de recherche est
refusée pour un des répertoires situés dans le
préfixe de chemin de chemin.
- EBADF
-
fpathconf() : fd n'est pas un
descripteur de fichier valable.
- EINVAL
-
nom_option n'est pas valable.
- EINVAL
- L'implémentation ne prend pas en charge
l'association de nom_option avec le fichier
spécifié.
- ELOOP
-
pathconf() : trop de liens symboliques
rencontrés en résolvant chemin.
- ENAMETOOLONG
-
pathconf() : chemin est trop
long.
- ENOENT
-
pathconf() : un composant de chemin
n'existe pas ou chemin est une chaîne vide.
- ENOTDIR
-
pathconf() : un élément
utilisé comme répertoire de chemin n'est en fait pas
un répertoire.
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
fpathconf(), pathconf() |
Sécurité des threads |
MT-Safe |
POSIX.1-2001, POSIX.1-2008.
Les fichiers dont la longueur du nom excède la valeur renvoyée
pour
nom_option, définie à
_PC_NAME_MAX, peuvent
exister dans le répertoire considéré.
Certaines valeurs renvoyées peuvent être énormes ;
elles ne sont pas utilisables pour réaliser des allocations
mémoires.
getconf(1),
open(2),
statfs(2),
confstr(3),
sysconf(3)
La traduction française de cette page de manuel a été
créée par Christophe Blaess
<
https://www.blaess.fr/christophe/>, Stéphan Rafin
<
[email protected]>, Thierry Vignaud
<
[email protected]>, François Micaux, Alain Portal
<
[email protected]>, Jean-Philippe Guérard
<
[email protected]>, Jean-Luc Coulon (f5ibh)
<
[email protected]>, Julien Cristau
<
[email protected]>, Thomas Huriaux <
[email protected]>,
Nicolas François <
[email protected]>, Florentin
Duneau <
[email protected]>, Simon Paillard
<
[email protected]>, Denis Barbier
<
[email protected]>, David Prévot <
[email protected]> et
Lucien Gentis <
[email protected]>
Cette traduction est une documentation libre ; veuillez vous reporter
à la
GNU
General Public License version 3 concernant les conditions de copie
et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
[email protected]