Skip to content

[3.11] gh-107801: Document SEEK_HOLE and SEEK_DATA (GH-107936) #108087

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 17, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 27 additions & 2 deletions Doc/library/os.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1061,6 +1061,10 @@ as internal buffering of data.
current position; :const:`SEEK_END` or ``2`` to set it relative to the end of
the file. Return the new cursor position in bytes, starting from the beginning.

.. versionchanged:: 3.3

Add support for :const:`SEEK_HOLE` and :const:`SEEK_DATA`.


.. data:: SEEK_SET
SEEK_CUR
Expand All @@ -1069,9 +1073,30 @@ as internal buffering of data.
Parameters to the :func:`lseek` function. Their values are 0, 1, and 2,
respectively.


.. data:: SEEK_HOLE
SEEK_DATA

Parameters to the :func:`lseek` function and the :meth:`~io.IOBase.seek`
method on file objects, for seeking file data and holes on sparsely
allocated files.

:data:`!SEEK_DATA`
Adjust the file offset to the next location containing data,
relative to the seek position.

:data:`!SEEK_HOLE`
Adjust the file offset to the next location containing a hole,
relative to the seek position.
A hole is defined as a sequence of zeros.

.. note::

These operations only make sense for filesystems that support them.

.. availability:: Linux >= 3.1, macOS, Unix

.. versionadded:: 3.3
Some operating systems could support additional values, like
:const:`os.SEEK_HOLE` or :const:`os.SEEK_DATA`.


.. function:: open(path, flags, mode=0o777, *, dir_fd=None)
Expand Down