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
<stephan.rafin@laposte.net>, Thierry Vignaud
<tvignaud@mandriva.com>, François Micaux, Alain Portal
<aportal@univ-montp2.fr>, Jean-Philippe Guérard
<fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh)
<jean-luc.coulon@wanadoo.fr>, Julien Cristau
<jcristau@debian.org>, Thomas Huriaux
<thomas.huriaux@gmail.com>, Nicolas François
<nicolas.francois@centraliens.net>, Florentin Duneau
<fduneau@gmail.com>, Simon Paillard
<simon.paillard@resel.enst-bretagne.fr>, Denis Barbier
<barbier@debian.org>, David Prévot <david@tilapin.org> et
Lucien Gentis <lucien.gentis@waika9.com>
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 à
debian-l10n-french@lists.debian.org.