summaryrefslogtreecommitdiffstats
path: root/templates/man7/pipe.7.pot
diff options
context:
space:
mode:
Diffstat (limited to 'templates/man7/pipe.7.pot')
-rw-r--r--templates/man7/pipe.7.pot707
1 files changed, 707 insertions, 0 deletions
diff --git a/templates/man7/pipe.7.pot b/templates/man7/pipe.7.pot
new file mode 100644
index 00000000..e57b39cc
--- /dev/null
+++ b/templates/man7/pipe.7.pot
@@ -0,0 +1,707 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the PACKAGE package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: PACKAGE VERSION\n"
+"POT-Creation-Date: 2024-03-01 17:03+0100\n"
+"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+"Language: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#. type: TH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "pipe"
+msgstr ""
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "2023-10-31"
+msgstr ""
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "Linux man-pages 6.06"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NAME"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "pipe - overview of pipes and FIFOs"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Pipes and FIFOs (also known as named pipes) provide a unidirectional "
+"interprocess communication channel. A pipe has a I<read end> and a I<write "
+"end>. Data written to the write end of a pipe can be read from the read end "
+"of the pipe."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A pipe is created using B<pipe>(2), which creates a new pipe and returns two "
+"file descriptors, one referring to the read end of the pipe, the other "
+"referring to the write end. Pipes can be used to create a communication "
+"channel between related processes; see B<pipe>(2) for an example."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A FIFO (short for First In First Out) has a name within the filesystem "
+"(created using B<mkfifo>(3)), and is opened using B<open>(2). Any process "
+"may open a FIFO, assuming the file permissions allow it. The read end is "
+"opened using the B<O_RDONLY> flag; the write end is opened using the "
+"B<O_WRONLY> flag. See B<fifo>(7) for further details. I<Note>: although "
+"FIFOs have a pathname in the filesystem, I/O on FIFOs does not involve "
+"operations on the underlying device (if there is one)."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I/O on pipes and FIFOs"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The only difference between pipes and FIFOs is the manner in which they are "
+"created and opened. Once these tasks have been accomplished, I/O on pipes "
+"and FIFOs has exactly the same semantics."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+msgid ""
+"If a process attempts to read from an empty pipe, then B<read>(2) will "
+"block until data is available. If a process attempts to write to a full "
+"pipe (see below), then B<write>(2) blocks until sufficient data has been "
+"read from the pipe to allow the write to complete."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+msgid ""
+"Nonblocking I/O is possible by using the B<fcntl>(2) B<F_SETFL> operation "
+"to enable the B<O_NONBLOCK> open file status flag or by opening a "
+"B<fifo>(7) with B<O_NONBLOCK>. If any process has the pipe open for "
+"writing, reads fail with B<EAGAIN>; otherwise\\[em]with no potential "
+"writers\\[em]reads succeed and return empty."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The communication channel provided by a pipe is a I<byte stream>: there is "
+"no concept of message boundaries."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If all file descriptors referring to the write end of a pipe have been "
+"closed, then an attempt to B<read>(2) from the pipe will see end-of-file "
+"(B<read>(2) will return 0). If all file descriptors referring to the read "
+"end of a pipe have been closed, then a B<write>(2) will cause a B<SIGPIPE> "
+"signal to be generated for the calling process. If the calling process is "
+"ignoring this signal, then B<write>(2) fails with the error B<EPIPE>. An "
+"application that uses B<pipe>(2) and B<fork>(2) should use suitable "
+"B<close>(2) calls to close unnecessary duplicate file descriptors; this "
+"ensures that end-of-file and B<SIGPIPE>/B<EPIPE> are delivered when "
+"appropriate."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "It is not possible to apply B<lseek>(2) to a pipe."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Pipe capacity"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A pipe has a limited capacity. If the pipe is full, then a B<write>(2) "
+"will block or fail, depending on whether the B<O_NONBLOCK> flag is set (see "
+"below). Different implementations have different limits for the pipe "
+"capacity. Applications should not rely on a particular capacity: an "
+"application should be designed so that a reading process consumes data as "
+"soon as it is available, so that a writing process does not remain blocked."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Before Linux 2.6.11, the capacity of a pipe was the same as the system page "
+"size (e.g., 4096 bytes on i386). Since Linux 2.6.11, the pipe capacity is "
+"16 pages (i.e., 65,536 bytes in a system with a page size of 4096 bytes). "
+"Since Linux 2.6.35, the default pipe capacity is 16 pages, but the capacity "
+"can be queried and set using the B<fcntl>(2) B<F_GETPIPE_SZ> and "
+"B<F_SETPIPE_SZ> operations. See B<fcntl>(2) for more information."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The following B<ioctl>(2) operation, which can be applied to a file "
+"descriptor that refers to either end of a pipe, places a count of the number "
+"of unread bytes in the pipe in the I<int> buffer pointed to by the final "
+"argument of the call:"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "ioctl(fd, FIONREAD, &nbytes);\n"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The B<FIONREAD> operation is not specified in any standard, but is provided "
+"on many implementations."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "/proc files"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On Linux, the following files control how much memory can be used for pipes:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I</proc/sys/fs/pipe-max-pages> (only in Linux 2.6.34)"
+msgstr ""
+
+#. commit b492e95be0ae672922f4734acf3f5d35c30be948
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"An upper limit, in pages, on the capacity that an unprivileged user (one "
+"without the B<CAP_SYS_RESOURCE> capability) can set for a pipe."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The default value for this limit is 16 times the default pipe capacity (see "
+"above); the lower limit is two pages."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This interface was removed in Linux 2.6.35, in favor of I</proc/sys/fs/pipe-"
+"max-size>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I</proc/sys/fs/pipe-max-size> (since Linux 2.6.35)"
+msgstr ""
+
+#. commit ff9da691c0498ff81fdd014e7a0731dab2337dac
+#. This limit is not checked on pipe creation, where the capacity is
+#. always PIPE_DEF_BUFS, regardless of pipe-max-size
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The maximum size (in bytes) of individual pipes that can be set by users "
+"without the B<CAP_SYS_RESOURCE> capability. The value assigned to this file "
+"may be rounded upward, to reflect the value actually employed for a "
+"convenient implementation. To determine the rounded-up value, display the "
+"contents of this file after assigning a value to it."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The default value for this file is 1048576 (1\\ MiB). The minimum value "
+"that can be assigned to this file is the system page size. Attempts to set "
+"a limit less than the page size cause B<write>(2) to fail with the error "
+"B<EINVAL>."
+msgstr ""
+
+#. commit 086e774a57fba4695f14383c0818994c0b31da7c
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Since Linux 4.9, the value on this file also acts as a ceiling on the "
+"default capacity of a new pipe or newly opened FIFO."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I</proc/sys/fs/pipe-user-pages-hard> (since Linux 4.5)"
+msgstr ""
+
+#. commit 759c01142a5d0f364a462346168a56de28a80f52
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The hard limit on the total size (in pages) of all pipes created or set by a "
+"single unprivileged user (i.e., one with neither the B<CAP_SYS_RESOURCE> nor "
+"the B<CAP_SYS_ADMIN> capability). So long as the total number of pages "
+"allocated to pipe buffers for this user is at this limit, attempts to create "
+"new pipes will be denied, and attempts to increase a pipe's capacity will be "
+"denied."
+msgstr ""
+
+#. The default was chosen to avoid breaking existing applications that
+#. make intensive use of pipes (e.g., for splicing).
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When the value of this limit is zero (which is the default), no hard limit "
+"is applied."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "I</proc/sys/fs/pipe-user-pages-soft> (since Linux 4.5)"
+msgstr ""
+
+#. commit 759c01142a5d0f364a462346168a56de28a80f52
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The soft limit on the total size (in pages) of all pipes created or set by a "
+"single unprivileged user (i.e., one with neither the B<CAP_SYS_RESOURCE> nor "
+"the B<CAP_SYS_ADMIN> capability). So long as the total number of pages "
+"allocated to pipe buffers for this user is at this limit, individual pipes "
+"created by a user will be limited to one page, and attempts to increase a "
+"pipe's capacity will be denied."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When the value of this limit is zero, no soft limit is applied. The default "
+"value for this file is 16384, which permits creating up to 1024 pipes with "
+"the default capacity."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Before Linux 4.9, some bugs affected the handling of the I<pipe-user-pages-"
+"soft> and I<pipe-user-pages-hard> limits; see BUGS."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "PIPE_BUF"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"POSIX.1 says that writes of less than B<PIPE_BUF> bytes must be atomic: the "
+"output data is written to the pipe as a contiguous sequence. Writes of more "
+"than B<PIPE_BUF> bytes may be nonatomic: the kernel may interleave the data "
+"with data written by other processes. POSIX.1 requires B<PIPE_BUF> to be at "
+"least 512 bytes. (On Linux, B<PIPE_BUF> is 4096 bytes.) The precise "
+"semantics depend on whether the file descriptor is nonblocking "
+"(B<O_NONBLOCK>), whether there are multiple writers to the pipe, and on "
+"I<n>, the number of bytes to be written:"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<O_NONBLOCK> disabled, I<n> E<lt>= B<PIPE_BUF>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"All I<n> bytes are written atomically; B<write>(2) may block if there is "
+"not room for I<n> bytes to be written immediately"
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<O_NONBLOCK> enabled, I<n> E<lt>= B<PIPE_BUF>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If there is room to write I<n> bytes to the pipe, then B<write>(2) succeeds "
+"immediately, writing all I<n> bytes; otherwise B<write>(2) fails, with "
+"I<errno> set to B<EAGAIN>."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<O_NONBLOCK> disabled, I<n> E<gt> B<PIPE_BUF>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The write is nonatomic: the data given to B<write>(2) may be interleaved "
+"with B<write>(2)s by other process; the B<write>(2) blocks until I<n> bytes "
+"have been written."
+msgstr ""
+
+#. type: TP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<O_NONBLOCK> enabled, I<n> E<gt> B<PIPE_BUF>"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"If the pipe is full, then B<write>(2) fails, with I<errno> set to "
+"B<EAGAIN>. Otherwise, from 1 to I<n> bytes may be written (i.e., a "
+"\"partial write\" may occur; the caller should check the return value from "
+"B<write>(2) to see how many bytes were actually written), and these bytes "
+"may be interleaved with writes by other processes."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Open file status flags"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The only open file status flags that can be meaningfully applied to a pipe "
+"or FIFO are B<O_NONBLOCK> and B<O_ASYNC>."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Setting the B<O_ASYNC> flag for the read end of a pipe causes a signal "
+"(B<SIGIO> by default) to be generated when new input becomes available on "
+"the pipe. The target for delivery of signals must be set using the "
+"B<fcntl>(2) B<F_SETOWN> command. On Linux, B<O_ASYNC> is supported for "
+"pipes and FIFOs only since Linux 2.6."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Portability notes"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On some systems (but not Linux), pipes are bidirectional: data can be "
+"transmitted in both directions between the pipe ends. POSIX.1 requires only "
+"unidirectional pipes. Portable applications should avoid reliance on "
+"bidirectional pipe semantics."
+msgstr ""
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "BUGS"
+msgstr ""
+
+#. These bugs where remedied by a series of patches, in particular,
+#. commit b0b91d18e2e97b741b294af9333824ecc3fadfd8 and
+#. commit a005ca0e6813e1d796a7422a7e31d8b8d6555df1
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Before Linux 4.9, some bugs affected the handling of the I<pipe-user-pages-"
+"soft> and I<pipe-user-pages-hard> limits when using the B<fcntl>(2) "
+"B<F_SETPIPE_SZ> operation to change a pipe's capacity:"
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "(a)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When increasing the pipe capacity, the checks against the soft and hard "
+"limits were made against existing consumption, and excluded the memory "
+"required for the increased pipe capacity. The new increase in pipe capacity "
+"could then push the total memory used by the user for pipes (possibly far) "
+"over a limit. (This could also trigger the problem described next.)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Starting with Linux 4.9, the limit checking includes the memory required for "
+"the new pipe capacity."
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "(b)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The limit checks were performed even when the new pipe capacity was less "
+"than the existing pipe capacity. This could lead to problems if a user set "
+"a large pipe capacity, and then the limits were lowered, with the result "
+"that the user could no longer decrease the pipe capacity."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Starting with Linux 4.9, checks against the limits are performed only when "
+"increasing a pipe's capacity; an unprivileged user can always decrease a "
+"pipe's capacity."
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "(c)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "The accounting and checking against the limits were done as follows:"
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "(1)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Test whether the user has exceeded the limit."
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "(2)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Make the new pipe buffer allocation."
+msgstr ""
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "(3)"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Account new allocation against the limits."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"This was racey. Multiple processes could pass point (1) simultaneously, and "
+"then allocate pipe buffers that were accounted for only in step (3), with "
+"the result that the user's pipe buffer allocation could be pushed over the "
+"limit."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Starting with Linux 4.9, the accounting step is performed before doing the "
+"allocation, and the operation fails if the limit would be exceeded."
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Before Linux 4.9, bugs similar to points (a) and (c) could also occur when "
+"the kernel allocated memory for a new pipe buffer; that is, when calling "
+"B<pipe>(2) and when opening a previously unopened FIFO."
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SEE ALSO"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<mkfifo>(1), B<dup>(2), B<fcntl>(2), B<open>(2), B<pipe>(2), B<poll>(2), "
+"B<select>(2), B<socketpair>(2), B<splice>(2), B<stat>(2), B<tee>(2), "
+"B<vmsplice>(2), B<mkfifo>(3), B<epoll>(7), B<fifo>(7)"
+msgstr ""
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "2022-12-04"
+msgstr ""
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "Linux man-pages 6.03"
+msgstr ""
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+msgid ""
+"If a process attempts to read from an empty pipe, then B<read>(2) will "
+"block until data is available. If a process attempts to write to a full "
+"pipe (see below), then B<write>(2) blocks until sufficient data has been "
+"read from the pipe to allow the write to complete. Nonblocking I/O is "
+"possible by using the B<fcntl>(2) B<F_SETFL> operation to enable the "
+"B<O_NONBLOCK> open file status flag."
+msgstr ""
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "2023-07-16"
+msgstr ""
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "Linux man-pages 6.05.01"
+msgstr ""
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "2023-03-08"
+msgstr ""
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Linux man-pages 6.04"
+msgstr ""