Man page - pipe(7)
Packages contains this manual
- shm_overview(7)
- nss(5)
- proc_mtrr(5)
- intro(7)
- tcp(7)
- iso_8859-9(7)
- armscii-8(7)
- proc_kpagecount(5)
- initrd(4)
- mouse(4)
- proc_stat(5)
- x25(7)
- proc_interrupts(5)
- fifo(7)
- repertoiremap(5)
- icmp(7)
- futex(7)
- feature_test_macros(7)
- lp(4)
- bpf-helpers(7)
- epoll(7)
- proc_sys_dev(5)
- namespaces(7)
- proc_sysrq-trigger(5)
- proc_bus(5)
- cp1251(7)
- proc_pid_maps(5)
- proc_sys_vm(5)
- proc_pid_projid_map(5)
- st(4)
- proc_pid(5)
- issue(5)
- pid_namespaces(7)
- unicode(7)
- inode(7)
- hosts.equiv(5)
- iso-8859-13(7)
- proc_fb(5)
- proc_modules(5)
- proc_pid_autogroup(5)
- keyrings(7)
- sysvipc(7)
- proc_kmsg(5)
- cgroups(7)
- latin6(7)
- proc_pid_uid_map(5)
- unix(7)
- proc_pid_io(5)
- pts(4)
- packet(7)
- ld-linux.so(8)
- tzselect(8)
- iconv(1)
- proc_pid_syscall(5)
- proc_pid_net(5)
- proc_pid_pagemap(5)
- tty(4)
- proc_profile(5)
- standards(7)
- proc_pid_mounts(5)
- filesystems(5)
- iso-8859-15(7)
- locale(5)
- iso_8859_3(7)
- xattr(7)
- iso-8859-2(7)
- proc_uptime(5)
- persistent-keyring(7)
- credentials(7)
- proc_pid_timers(5)
- utmpx(5)
- vcsa(4)
- proc_pid_exe(5)
- proc_net(5)
- proc_timer_stats(5)
- ip(7)
- proc_pid_fd(5)
- ptmx(4)
- user_namespaces(7)
- resolv.conf(5)
- url(7)
- iso_8859_5(7)
- iso_8859-8(7)
- urn(7)
- process-keyring(7)
- proc_pid_auxv(5)
- proc_ksyms(5)
- proc_ide(5)
- veth(4)
- ldd(1)
- proc_swaps(5)
- landlock(7)
- proc_vmstat(5)
- system_data_types(7)
- cp1252(7)
- lirc(4)
- proc_kpageflags(5)
- random(7)
- precedence(7)
- cpuset(7)
- proc_pid_ns(5)
- acct(5)
- latin4(7)
- proc_pid_cgroup(5)
- proc_cpuinfo(5)
- iso_8859-2(7)
- proc_keys(5)
- charsets(7)
- pldd(1)
- proc_pid_stat(5)
- rtnetlink(7)
- netlink(7)
- ram(4)
- mem(4)
- iso-8859-6(7)
- proc_key-users(5)
- iso_8859_15(7)
- fanotify(7)
- proc_sys_net(5)
- sysfs(5)
- math_error(7)
- latin1(7)
- proc_pid_root(5)
- nptl(7)
- proc_cgroups(5)
- proc_iomem(5)
- proc_pid_statm(5)
- sem_overview(7)
- hier(7)
- full(4)
- proc_pid_status(5)
- proc_pid_cwd(5)
- proc_pid_cpuset(5)
- proc_scsi(5)
- uri(7)
- proc_diskstats(5)
- iso_8859_6(7)
- latin2(7)
- latin5(7)
- man-pages(7)
- ld.so(8)
- uts_namespaces(7)
- proc_pid_mountstats(5)
- intro(3)
- proc_pid_seccomp(5)
- proc_pid_wchan(5)
- attributes(7)
- symlink(7)
- mount_namespaces(7)
- charmap(5)
- tis-620(7)
- iso-8859-10(7)
- getent(1)
- proc_buddyinfo(5)
- ttytype(5)
- rtc(4)
- proc_malloc(5)
- suffixes(7)
- sln(8)
- signal(7)
- proc_sys_abi(5)
- signal-safety(7)
- time_namespaces(7)
- proc_pid_comm(5)
- raw(7)
- gai.conf(5)
- proc_crypto(5)
- locale(1)
- iso-8859-3(7)
- motd(5)
- proc_meminfo(5)
- iso-8859-8(7)
- protocols(5)
- proc_pid_map_files(5)
- pthreads(7)
- null(4)
- proc(5)
- zdump(8)
- socket(7)
- proc_sys_kernel(5)
- ddp(7)
- memusagestat(1)
- hd(4)
- iso-8859-14(7)
- shells(5)
- pipe(7)
- glob(7)
- proc_self(5)
- network_namespaces(7)
- utmp(5)
- proc_kcore(5)
- nsswitch.conf(5)
- sd(4)
- iso-8859-5(7)
- iso_8859_16(7)
- man(7)
- iso_8859-6(7)
- dir_colors(5)
- mq_overview(7)
- vsock(7)
- ascii(7)
- thread-keyring(7)
- fs(5)
- proc_pid_attr(5)
- proc_sys_debug(5)
- proc_sys(5)
- proc_pid_cmdline(5)
- pty(7)
- services(5)
- cgroup_namespaces(7)
- securetty(5)
- netdevice(7)
- iso_8859_13(7)
- host.conf(5)
- proc_pid_setgroups(5)
- proc_slabinfo(5)
- sock_diag(7)
- iso_8859-14(7)
- iso-8859-11(7)
- iso_8859_11(7)
- operator(7)
- regex(7)
- wavelan(4)
- proc_sys_fs(5)
- nologin(5)
- proc_pci(5)
- koi8-r(7)
- erofs(5)
- intro(2)
- utf8(7)
- proc_kallsyms(5)
- proc_sysvipc(5)
- queue(7)
- proc_sys_sunrpc(5)
- intro(5)
- latin8(7)
- mtrace(1)
- ipc_namespaces(7)
- dsp56k(4)
- iso_8859_4(7)
- proc_pid_smaps(5)
- proc_cmdline(5)
- rpc(5)
- proc_tty(5)
- proc_version(5)
- smartpqi(4)
- proc_pid_timerslack_ns(5)
- aio(7)
- session-keyring(7)
- resolver(5)
- slabinfo(5)
- wtmp(5)
- iso_8859_9(7)
- proc_locks(5)
- mailaddr(7)
- proc_pid_oom_score(5)
- kmem(4)
- iconvconfig(8)
- iso_8859-7(7)
- glibc(7)
- hostname(7)
- proc_thread-self(5)
- ipv6(7)
- iso_8859_7(7)
- proc_kpagecgroup(5)
- core(5)
- time(7)
- units(7)
- proc_dma(5)
- loop(4)
- address_families(7)
- zero(4)
- intro(4)
- procfs(5)
- iso_8859-4(7)
- vdso(7)
- tmpfs(5)
- iso-8859-16(7)
- iso_8859_10(7)
- user-session-keyring(7)
- libc(7)
- proc_fs(5)
- koi8-u(7)
- latin3(7)
- proc_tid_children(5)
- proc_pid_limits(5)
- proc_pid_coredump_filter(5)
- iso_8859-15(7)
- arp(7)
- urandom(4)
- iso_8859-10(7)
- hpsa(4)
- proc_pid_environ(5)
- boot(7)
- ftm(7)
- ld-linux(8)
- proc_driver(5)
- loop-control(4)
- iso_8859-16(7)
- proc_filesystems(5)
- tzfile(5)
- sprof(1)
- proc_pid_task(5)
- proc_pid_oom_score_adj(5)
- proc_mounts(5)
- iso-8859-4(7)
- iso_8859-1(7)
- utf-8(7)
- iso_8859-13(7)
- intro(6)
- proc_timer_list(5)
- rtld-audit(7)
- iso_8859-3(7)
- group(5)
- sched(7)
- proc_pid_clear_refs(5)
- hosts(5)
- iso_8859-11(7)
- numa(7)
- iso_8859_2(7)
- locale(7)
- iso-8859-1(7)
- fuse(4)
- proc_tid(5)
- proc_execdomains(5)
- proc_pid_mountinfo(5)
- intro(8)
- iso_8859_8(7)
- proc_loadavg(5)
- proc_pid_oom_adj(5)
- re_format(7)
- iso_8859_14(7)
- zic(8)
- bootparam(7)
- inotify(7)
- posixoptions(7)
- proc_partitions(5)
- iso-8859-9(7)
- proc_pid_mem(5)
- networks(5)
- proc_sys_user(5)
- udp(7)
- proc_zoneinfo(5)
- latin10(7)
- proc_pid_fdinfo(5)
- proc_pid_stack(5)
- memusage(1)
- spufs(7)
- pkeys(7)
- path_resolution(7)
- proc_ioports(5)
- intro(1)
- ldconfig(8)
- msr(4)
- svipc(7)
- port(4)
- proc_pid_personality(5)
- cciss(4)
- latin9(7)
- capabilities(7)
- localedef(1)
- vcs(4)
- iso_8859-5(7)
- elf(5)
- proc_sys_proc(5)
- console_codes(4)
- random(4)
- iso-8859-7(7)
- termcap(5)
- cpuid(4)
- environ(7)
- string_copying(7)
- proc_pid_gid_map(5)
- queue(3)
- termio(7)
- user-keyring(7)
- complex(7)
- latin7(7)
- proc_config.gz(5)
- udplite(7)
- kernel_lockdown(7)
- proc_devices(5)
- proc_apm(5)
- iso_8859_1(7)
- proc_pid_numa_maps(5)
apt-get install manpages
Available languages:
en fr pl ja ruManual
pipe
NOMDESCRIPTION
E/S sur les tubes et les FIFO
CapacitĂ© dâun tube
Fichiers /proc
PIPE_BUF
Attributs dâĂ©tat de fichier ouvert
Notes sur la portabilité
BOGUES
VOIR AUSSI
TRADUCTION
NOM
pipe â ExposĂ© gĂ©nĂ©ral sur les tubes et les FIFO
DESCRIPTION
Les tubes et les FIFO (ou tubes nommĂ©s) fournissent un canal de communication interprocessus unidirectionnel. Un tube a une entrĂ©e et une sortie . Les donnĂ©es Ă©crites Ă lâentrĂ©e du tube peuvent ĂȘtre lues Ă sa sortie.
Un tube est créé avec lâappel systĂšme pipe (2) qui crĂ©e un nouveau tube et renvoie deux descripteurs de fichier, lâun correspondant Ă lâentrĂ©e du tube et lâautre Ă la sortie. Les tubes peuvent ĂȘtre utilisĂ©s pour crĂ©er un canal de communication entre des processus associĂ©s ; consultez pipe (2) pour un exemple.
Une file dâattente FIFO (abrĂ©viation de « First In First Out » ou premier entrĂ©, premier sorti) a un nom sur le systĂšme de fichiers (créé avec mkfifo (3)) et est ouverte avec open (2). Tout processus peut ouvrir une FIFO si les permissions du fichier lâautorisent. La sortie est ouverte avec lâoption O_RDONLY ; lâentrĂ©e est ouverte avec lâoption O_WRONLY . Consultez fifo (7) pour plus de dĂ©tails. Note : mĂȘme si les FIFO ont un nom sur le systĂšme de fichiers, les entrĂ©es/sorties sur une FIFO nâimpliquent pas dâopĂ©rations sur le pĂ©riphĂ©rique sous-jacent (sâil y en a un).
E/S sur les tubes et les FIFO
La seule diffĂ©rence entre les tubes et les FIFO est la maniĂšre dont ils sont créés et ouverts. Une fois ces tĂąches accomplies, les E/S sur les tubes et les FIFO ont strictement les mĂȘmes sĂ©mantiques.
Si un processus essaie de lire dans un tube vide, read (2) bloquera jusquâĂ ce que des donnĂ©es soient disponibles. Si un processus essaie dâĂ©crire dans un tube plein (voir ci-dessous), write (2) bloque jusquâĂ ce que suffisamment de donnĂ©es aient Ă©tĂ© lues dans le tube pour permettre la rĂ©ussite de lâĂ©criture.
Des E/S non bloquantes sont possibles en utilisant lâopĂ©ration F_SETFL de fcntl (2) pour activer lâattribut O_NONBLOCK dâĂ©tat de fichier ouvert ou en ouvrant une fifo (7) avec O_NONBLOCK . Si le tube dâun processus est ouvert en Ă©criture, les lectures Ă©choue avec une erreur EAGAIN ; autrement, sans processus Ă©crivant potentiel, les lectures rĂ©ussissent et ne renvoient rien.
Le canal de communication fourni par un tube est un flux dâoctets : il nây a pas de notion de limite de messages.
Si tous les descripteurs de fichier correspondant Ă lâentrĂ©e dâun tube sont fermĂ©s, une tentative de lecture sur le tube renverra une condition de fin de fichier ( read (2) renverra 0 ). Si tous les descripteurs de fichier correspondant Ă la sortie dâun tube sont fermĂ©s, une tentative dâĂ©criture provoquera lâenvoi du signal SIGPIPE au processus appelant. Si le processus appelant ignore ce signal, write (2) Ă©choue avec lâerreur EPIPE . Une application utilisant pipe (2) et fork (2) doit utiliser des appels Ă close (2) afin de fermer les descripteurs de fichier superflus ; cela permet dâassurer que la condition de fin de ficher et SIGPIPE / EPIPE soient renvoyĂ©s correctement.
Il nâest pas possible dâinvoquer lseek (2) sur un tube.
CapacitĂ© dâun tube
Un tube a une capacitĂ© limitĂ©e. Si le tube est plein, un write (2) bloquera ou Ă©chouera, selon que lâattribut O_NONBLOCK est activĂ© ou non (voir ci-dessous). DiffĂ©rentes implĂ©mentations ont diffĂ©rentes limites de capacitĂ© des tubes. Les applications ne doivent pas dĂ©pendre dâune capacitĂ© particuliĂšre, mais ĂȘtre conçues pour quâun processus lecteur lise les donnĂ©es dĂšs quâelles sont disponibles de maniĂšre Ă ce quâun processus Ă©crivant ne soit pas bloquĂ©.
Avant Linux 2.6.11, la capacitĂ© dâun tube Ă©tait la mĂȘme que la taille dâune page systĂšme (par exemple 4 096 octets sur i386). Depuis Linux 2.6.11, la capacitĂ© dâun tube est par dĂ©faut de 16 pages (câest-Ă -dire 65 536 octets sur un systĂšme avec 4 096 octets comme taille de page). Depuis Linux 2.6.35, la capacitĂ© dâun tube est de 16 pages, mais la capacitĂ© peut ĂȘtre recherchĂ©e et dĂ©finie en utilisant les opĂ©rations F_GETPIPE_SZ et F_SETPIPE_SZ de fcntl (2). Consultez fcntl (2) pour davantage dâinformations.
LâopĂ©ration ioctl (2) suivante, qui peut ĂȘtre appliquĂ©e Ă un descripteur de fichier faisant rĂ©fĂ©rence Ă nâimporte quelle extrĂ©mitĂ© du tube, place un certain nombre dâoctets non lus dans le tube dans le tampon int pointĂ© par le dernier argument de lâappel :
ioctl(fd, FIONREAD, &nbytes);
LâopĂ©ration FIONREAD nâest prĂ©cisĂ©e dans aucune norme, mais est fournie dans beaucoup dâimplĂ©mentations.
Fichiers /proc
Dans Linux, les
fichiers suivants contrÎlent la quantité de
mĂ©moire pouvant ĂȘtre utilisĂ©e pour les
tubes :
/proc/sys/fs/pipe-max-pages
(uniquement pour Linux
2.6.34)
Une limite supĂ©rieure, en nombre de pages, sur la quantitĂ© quâun utilisateur non privilĂ©giĂ© (nâayant pas la capacitĂ© CAP_SYS_RESOURCE ) peut ĂȘtre dĂ©finie pour un tube.
La valeur par défaut pour cette limite est de 16 fois la quantité par défaut pour le tube (voir ci-dessus). La limite basse est de deux pages.
Cette interface a été supprimée dans Linux 2.6.35, en faveur de /proc/sys/fs/pipe-max-size .
/proc/sys/fs/pipe-max-size (depuis Linux 2.6.35)
La taille maximale (en octet) de tubes particuliers pouvant ĂȘtre dĂ©finie par les utilisateurs nâayant pas la capacitĂ© CAP_SYS_RESOURCE . La valeur assignĂ©e dans ce fichier peut ĂȘtre arrondie Ă la valeur supĂ©rieure pour reflĂ©ter la valeur rĂ©ellement employĂ©e pour une mise en Ćuvre pratique. Pour dĂ©terminer cette valeur arrondie, affichez le contenu de ce fichier aprĂšs lui avoir assignĂ© une valeur.
La valeur par dĂ©faut pour ce fichier est 1 048 576 (1 Mibit). La valeur minimale qui peut ĂȘtre assignĂ©e Ă cette page est la taille de page du systĂšme. Un essai dâune limite infĂ©rieure Ă cette taille de page provoque lâĂ©chec de write (2) avec lâerreur EINVAL .
Depuis Linux 4.9, la valeur dans ce fichier agit comme un plafond pour la capacité par défaut pour un nouveau tube ou une FIFO nouvellement ouverte.
/proc/sys/fs/pipe-user-pages-hard (depuis Linux 4.5)
La limite dure de la taille totale (en nombre de pages) de tous les tubes créés ou dĂ©finis par un utilisateur particulier non privilĂ©giĂ© (câest-Ă -dire nâayant ni la capacitĂ© CAP_SYS_RESOURCE ni la capacitĂ© CAP_SYS_ADMIN ). Aussi longtemps que le nombre total de pages allouĂ©es pour les tampons de tube pour cet utilisateur est Ă cette limite, les essais pour crĂ©er de nouveaux tubes nâaboutiront pas et les essais pour augmenter la capacitĂ© de tube nâaboutiront pas.
Quand la valeur de cette limite est zĂ©ro (comportement par dĂ©faut ), aucune limite dure nâest appliquĂ©e.
/proc/sys/fs/pipe-user-pages-soft (depuis Linux 4.5)
La limite douce de la taille totale (en nombre de pages) de tous les tubes créés ou dĂ©finis par un utilisateur particulier non privilĂ©giĂ© (câest-Ă -dire nâayant ni la capacitĂ© CAP_SYS_RESOURCE ni la capacitĂ© CAP_SYS_ADMIN ). Aussi longtemps que le nombre total de pages allouĂ©es pour les tampons de tube pour cet utilisateur est Ă cette limite, les tubes individuels créés par lâutilisateur seront limitĂ©s Ă une page et les essais pour augmenter la capacitĂ© de tube nâaboutiront pas.
Quand la valeur de cette limite est zĂ©ro, aucune limite douce nâest appliquĂ©e. La valeur par dĂ©faut dans ce fichier est 16 384 qui permet de crĂ©er jusquâĂ 1 024 tubes avec la capacitĂ© par dĂ©faut.
Avant Linux 4.9, quelques bogues affectaient la gestion des limites pipe-user-pages-soft et pipe-user-pages-hard . Consultez la section BOGUES.
PIPE_BUF
POSIX.1-2001
indique que les écritures de moins de
PIPE_BUF
octets doivent ĂȘtre
atomiques : les données produites sont
écrites dans le tube de façon contiguë.
Les écritures de plus de
PIPE_BUF
octets
peuvent ne pas ĂȘtre atomiques : le noyau peut
entrelacer les données avec des données
Ă©crites par dâautres processus. POSIX.1-2001
demande que
PIPE_BUF
soit au moins de
512 octets ; sous Linux,
PIPE_BUF
vaut
4 096 octets. La sémantique précise
dĂ©pend de lâattribut non bloquant du
descripteur de fichier (
O_NONBLOCK
), du nombre de
processus écrivant dans le tube et de
n
, le
nombre dâoctets Ă Ă©crire :
O_NONBLOCK
désactivé,
n
<=
PIPE_BUF
Les n octets sont Ă©crits de maniĂšre atomique ; write (2) peut bloquer sâil nây a pas de place pour Ă©crire n octets immĂ©diatement.
O_NONBLOCK activé, n <= PIPE_BUF
Sâil y a la place dâĂ©crire n octets dans le tube, write (2) rĂ©ussit immĂ©diatement, en Ă©crivant les n octets ; sinon, write (2) Ă©choue et dĂ©finit errno Ă EAGAIN .
O_NONBLOCK désactivé, n > PIPE_BUF
LâĂ©criture est non atomique : les donnĂ©es fournies Ă write (2) peuvent ĂȘtre entrelacĂ©es avec des Ă©critures dâautres processus ; lâĂ©criture bloque jusquâĂ ce que n octets aient Ă©tĂ© Ă©crits.
O_NONBLOCK activé, n > PIPE_BUF
Si le tube est plein, write (2) Ă©choue, en plaçant errno Ă EAGAIN . Sinon, entre 1 et n octets peuvent ĂȘtre Ă©crits (une « écriture partielle » peut se produire ; lâappelant doit vĂ©rifier la valeur de retour de write (2) pour voir combien dâoctets ont rĂ©ellement Ă©tĂ© Ă©crits), et ces octets peuvent ĂȘtre entrelacĂ©s avec des Ă©critures dâautres processus.
Attributs dâĂ©tat de fichier ouvert
Les seuls attributs dâĂ©tat de fichier ouvert qui peuvent sâappliquer aux tubes et aux FIFO sont O_NONBLOCK et O_ASYNC .
Activer lâattribut O_ASYNC Ă la sortie dâun tube provoque lâenvoi dâun signal ( SIGIO par dĂ©faut) lorsque de nouvelles donnĂ©es sont disponibles dans le tube. La cible de rĂ©ception du signal doit ĂȘtre dĂ©finie en utilisant la commande F_SETOWN de fcntl (2). Sous Linux, O_ASYNC nâest possible sur les tubes et les FIFO que depuis Linux 2.6.
Notes sur la portabilité
Sur certains systĂšmes (mais pas sous Linux), les tubes sont bidirectionnels : des donnĂ©es peuvent ĂȘtre transmises dans les deux directions entre les extrĂ©mitĂ©s du tube. Selon POSIX.1-2001, les tubes sont uniquement dĂ©crits comme unidirectionnels. Les applications portables doivent Ă©viter de sâappuyer sur une sĂ©mantique bidirectionnelle des tubes.
BOGUES
Avant Linux 4.9, quelques bogues affectaient la gestion des limites pipe-user-pages-soft et pipe-user-pages-hard lors de lâutilisation de lâopĂ©ration F_SETPIPE_SZ de fcntl (2) pour modifier la capacitĂ© dâun tube :
|
(a) |
Lors de lâaugmentation de la capacitĂ© du tube, les vĂ©rifications sur les limites douce et dure sont faites sur la consommation existante et excluent la mĂ©moire nĂ©cessaire pour la capacitĂ© augmentĂ©e du tube. La nouvelle augmentation de capacitĂ© du tube pourrait pousser la mĂ©moire totale utilisĂ©e par lâutilisateur pour les tubes au-dessus (possiblement trĂšs au delĂ ) de la limite. Cela pourrait aussi dĂ©clencher le problĂšme exposĂ© ci-aprĂšs. |
Depuis Linux 4.9, la vérification de limite inclut la mémoire nécessaire pour la nouvelle capacité de tube.
|
(b) |
Les vĂ©rifications de limite sont rĂ©alisĂ©es mĂȘme si la nouvelle capacitĂ© du tube est infĂ©rieure Ă la capacitĂ© du tube existant. Cela pourrait conduire Ă des problĂšmes si un utilisateur dĂ©finit une capacitĂ© importante de tube et que les limites sont abaissĂ©es, avec comme rĂ©sultat que lâutilisateur ne pourrait plus abaisser la capacitĂ© du tube. |
Depuis Linux 4.9, les vĂ©rifications des limites sont rĂ©alisĂ©es uniquement lors de lâaugmentation de capacitĂ© de tube. Un utilisateur non privilĂ©giĂ© peut toujours diminuer la capacitĂ© de tube.
|
(c) |
La prise en compte et la vérification sur les limites sont faites comme suit : |
(1)
|
Test pour savoir si lâutilisateur a dĂ©passĂ© la limite. |
||||
|
(2) |
Allocation du tampon pour le nouveau tube. |
|||
|
(3) |
Comparaison de la nouvelle allocation avec les limites. |
Cela est risquĂ©. Plusieurs processus peuvent passer le point (1) simultanĂ©ment et puis allouer des tampons de tube qui sont pris en compte lors de lâĂ©tape (3), avec comme rĂ©sultat que lâallocation du tampon de tube de lâutilisateur peut dĂ©passer la limite.
Depuis Linux 4.9, lâĂ©tape de prise en compte est rĂ©alisĂ©e avant lâallocation et lâopĂ©ration Ă©choue si la limite est dĂ©passĂ©e.
Avant Linux 4.9, des bogues similaires aux points (a) et (c) pourraient se produire quand le noyau alloue de la mĂ©moire pour le nouveau tampon de tube, câest-Ă -dire lors de lâappel pipe (2) et lors de lâouverture dâune nouvelle FIFO prĂ©cĂ©demment non ouverte.
VOIR AUSSI
mkfifo (1), dup (2), fcntl (2), open (2), pipe (2), poll (2), select (2), socketpair (2), splice (2), stat (2), tee (2), vmsplice (2), mkfifo (3), epoll (7), fifo (7)
TRADUCTION
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>, Cédric Boutillier <cedric.boutillier@gmail.com>, Frédéric Hantrais <fhantrais@gmail.com> et Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>
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 .