1
0
Fork
You've already forked pv
0
forked from ivarch/pv
Pipe Viewer - monitor the progress of data through a pipe.
  • C 85.1%
  • Shell 13%
  • M4 1%
  • Makefile 0.9%
Dirk Müller 411808c680
Fix resetting fd counter to -1
Standard output corresponds to file descriptor `1` (`STDOUT_FILENO`).
Since the closed file descriptor variable is set to `1` (which is not
`-1`), any subsequent checks using `if (-1 != x)` will evaluate to true.
If `close_if_open` is called again on the same variable, or if error
cleanup code triggers redundant closures, it executes `close(1)`,
closing the standard output descriptor of the process
2026年06月14日 21:05:11 +02:00
docs Commit to release date. 2026年06月11日 22:05:37 +01:00
po Add the missing new file. 2026年06月11日 22:02:30 +01:00
src Fix resetting fd counter to -1 2026年06月14日 21:05:11 +02:00
tests fix: avoid EOF hang on unread pipe output ( #189 ) 2026年04月30日 04:47:09 -04:00
.gitignore Major restructuring to switch build system from old scripts to GNU Automake. 2023年08月28日 10:04:39 +01:00
configure.ac Use copy_file_range() for transfers if it is available ( #196 ). 2026年05月31日 22:18:18 +01:00
Makefile.am Rename the new benchmark script. 2026年05月29日 22:17:27 +01:00
README.md Reword the introduction, and mention monitor mode. 2026年04月19日 00:09:26 +01:00

Introduction

pv ("Pipe Viewer") is a terminal-based tool for monitoring the progress of data through a pipeline and modifying its flow.

When used just like "cat", pv displays how quickly data is being transferred, how long it has taken, how near to completion it is, and an estimate of how long it will be until completion. Data flow rate, error handling strategy, buffer size, and cache interaction can all be adjusted.

With the "--cursor" option, several pv instances can work together, showing transfer progress at different points in the same pipeline.

In "--watchfd" mode, pv will inspect another process and show its progress through the files it has open.

In "--monitor" mode, pv will run a command and display the progress of data through both its standard input and its standard output.

Documentation

A manual page is included in this distribution ("man pv"). Before installation, it is in "docs/pv.1".

Changes are listed in "docs/NEWS.md".

Developers and translators, please see "docs/DEVELOPERS.md".

Translators can use the Weblate instance hosted by Codeberg: https://translate.codeberg.org/engage/pv/

Translation status

If you don't see your language listed, raise an issue on the issue tracker (or just email the maintainer) asking for it to be added.

Installation

See "docs/INSTALL" for more about the configure script.

The typical process for a system-wide install is:

sh ./configure --prefix=/usr
make
sudo make install

This requires the build toolchain ("sudo apt install build-essential" on Debian or Ubuntu systems).

If this is not a packaged release, the configure script is not included. It is generated with the GNU build system tools (autoconf, aclocal, autopoint, automake); gettext is also needed. On Debian or Ubuntu, run "sudo apt install automake autopoint gettext". Once those tools are in place, call "autoreconf -is" to generate the configure script, and run it as described above.

Copyright, bug reporting, and acknowledgements

See "docs/ACKNOWLEDGEMENTS.md" for a list of contributors.

Copyright (C) 2002-2008, 2010, 2012-2015, 2017, 2021, 2023-2026 Andrew Wood.

License GPLv3+: GNU GPL version 3 or later https://www.gnu.org/licenses/gpl-3.0.html.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License, version 3, in "docs/COPYING". If not, see https://www.gnu.org/licenses/gpl-3.0.html.

Please report bugs or request features via the issue tracker linked from the home page.

The pv home page is at:

https://ivarch.com/p/pv

The latest version can always be found here.