diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 19:43:11 +0000 |
commit | fc22b3d6507c6745911b9dfcc68f1e665ae13dbc (patch) | |
tree | ce1e3bce06471410239a6f41282e328770aa404a /templates/man7/pipe.7.pot | |
parent | Initial commit. (diff) | |
download | manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.tar.xz manpages-l10n-fc22b3d6507c6745911b9dfcc68f1e665ae13dbc.zip |
Adding upstream version 4.22.0.upstream/4.22.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'templates/man7/pipe.7.pot')
-rw-r--r-- | templates/man7/pipe.7.pot | 707 |
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 "" |