mkfifo, mkfifoat - Créer un fichier spécial FIFO (un tube
nommé)
Bibliothèque C standard (
libc,
-lc)
#include <sys/types.h>
#include <sys/stat.h>
int mkfifo(const char *pathname, mode_t mode);
#include <fcntl.h> /* Définition des constantes AT_* */
#include <sys/stat.h>
int mkfifoat(int dirfd, const char *pathname, mode_t mode) ;
mkfifoat() :
Depuis la version 2.10 de la glibc :
_POSIX_C_SOURCE >= 200809L
Avant la version 2.10 de la glibc :
_ATFILE_SOURCE
mkfifo() makes a FIFO special file with name
pathname.
mode
specifies the FIFO's permissions. It is modified by the process's
umask
in the usual way: the permissions of the created file are
(mode & ~umask).
Un fichier spécial FIFO est semblable à un tube (pipe), sauf qu'il
est créé différemment. Plutôt qu'un canal de
communication anonyme, un fichier FIFO est inséré dans le
système de fichiers en appelant
mkfifo().
Une fois qu'un fichier FIFO est créé, n'importe quel processus
peut l'ouvrir en lecture ou écriture, comme tout fichier ordinaire. En
fait, il faut ouvrir les deux extrémités simultanément
avant de pouvoir effectuer une opération d'écriture ou de
lecture. L'ouverture d'un FIFO en lecture est généralement
bloquante, jusqu'à ce qu'un autre processus ouvre le même FIFO
en écriture, et inversement. Consultez
fifo(7) pour la gestion
non bloquante d'une FIFO.
La fonction
mkfifoat() opère exactement de la même
façon que la fonction
mkfifo(), à une différence
près (décrite ci-dessous).
Si le chemin fourni dans
pathname est un chemin relatif, alors il est
interprété relativement au répertoire indiqué par
le descripteur de fichier
dirfd (et non relativement au
répertoire courant du processus appelant, comme c'est le cas lorsque
que
mkfifo() est appelée avec un chemin relatif).
Si
pathname est un chemin relatif et si
dirfd est la valeur
spéciale
AT_FDCWD, alors
pathname est
interprété relativement au répertoire de travail courant
du processus appelant (comme pour
mkfifo()).
Si
pathname est absolu, alors
dirfd est ignoré.
See
openat(2) for an explanation of the need for
mkfifoat().
On success
mkfifo() and
mkfifoat() return 0. On error, -1 is
returned and
errno is set to indicate the error.
- EACCES
- L'un des répertoires dans pathname ne permet
pas la recherche (exécution).
- EBADF
- (mkfifoat()) pathname is relative but
dirfd is neither AT_FDCWD nor a valid file descriptor.
- EDQUOT
- Le quota utilisateur pour le système de fichiers a
été dépassé (usage de blocs de disque ou
d'inœuds).
- EEXIST
-
pathname existe déjà. Cela inclut le
cas où pathname est un lien symbolique, pouvant pointer
nulle part.
- ENAMETOOLONG
- Soit la longueur totale de pathname est
supérieure à PATH_MAX, soit un élément
de pathname a une longueur plus grande que NAME_MAX. Sur les
systèmes GNU il n'y a pas de limite absolue à la longueur du
nom d'un fichier, mais certains autres systèmes en ont une.
- ENOENT
- Un des répertoires du chemin d'accès
nom_chemin n'existe pas ou est un lien symbolique pointant nulle
part.
- ENOSPC
- Le répertoire, ou le système de fichiers, n'a
pas assez de place pour un nouveau fichier.
- ENOTDIR
- Un élément, utilisé comme
répertoire, du chemin d'accès nom_chemin n'est pas en
fait un répertoire.
- ENOTDIR
- (mkfifoat()) pathname is a relative pathname
and dirfd is a file descriptor referring to a file other than a
directory.
- EROFS
-
pathname est sur un système de fichiers en
lecture seule.
mkfifoat() was added in glibc 2.4. It is implemented using
mknodat(2), available since Linux 2.6.16.
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
Interface |
Attribut |
Valeur |
mkfifo(), mkfifoat() |
Sécurité des threads |
MT-Safe |
mkfifo() : POSIX.1-2001, POSIX.1-2008.
mkfifoat() : POSIX.1-2008.
mkfifo(1),
close(2),
open(2),
read(2),
stat(2),
umask(2),
write(2),
fifo(7)
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]>,
Cédric Boutillier <
[email protected]> et
Frédéric Hantrais <
[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]