Skip to content

Commit

Permalink
Docs: Add os.splice flags argument (python#109847)
Browse files Browse the repository at this point in the history
Co-authored-by: Adam Turner <[email protected]>
Co-authored-by: Blaise Pabon <[email protected]>
  • Loading branch information
3 people authored and estyxx committed Jul 17, 2024
1 parent 64bcb44 commit e4fc0fd
Showing 1 changed file with 20 additions and 1 deletion.
21 changes: 20 additions & 1 deletion Doc/library/os.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1724,10 +1724,27 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo
Added support for pipes on Windows.


.. function:: splice(src, dst, count, offset_src=None, offset_dst=None)
.. function:: splice(src, dst, count, offset_src=None, offset_dst=None, flags=0)

Transfer *count* bytes from file descriptor *src*, starting from offset
*offset_src*, to file descriptor *dst*, starting from offset *offset_dst*.

The splicing behaviour can be modified by specifying a *flags* value.
Any of the following variables may used, combined using bitwise OR
(the ``|`` operator):

* If :const:`SPLICE_F_MOVE` is specified,
the kernel is asked to move pages instead of copying,
but pages may still be copied if the kernel cannot move the pages from the pipe.

* If :const:`SPLICE_F_NONBLOCK` is specified,
the kernel is asked to not block on I/O.
This makes the splice pipe operations nonblocking,
but splice may nevertheless block because the spliced file descriptors may block.

* If :const:`SPLICE_F_MORE` is specified,
it hints to the kernel that more data will be coming in a subsequent splice.

At least one of the file descriptors must refer to a pipe. If *offset_src*
is ``None``, then *src* is read from the current position; respectively for
*offset_dst*. The offset associated to the file descriptor that refers to a
Expand All @@ -1746,6 +1763,8 @@ or `the MSDN <https://msdn.microsoft.com/en-us/library/z0kc8e3z.aspx>`_ on Windo
make sense to block because there are no writers connected to the write end
of the pipe.

.. seealso:: The :manpage:`splice(2)` man page.

.. availability:: Linux >= 2.6.17 with glibc >= 2.5

.. versionadded:: 3.10
Expand Down

0 comments on commit e4fc0fd

Please sign in to comment.